:root{--ivory:#fffcf8;--coral:#f6e7de;--muted:#d99183;--red:#a84f49;--ink:#443936;--soft:#7d6b63;--line:#e8d7ce;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',serif;--sans:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:2.05;letter-spacing:.045em}a{color:inherit;text-decoration:none}button{font:inherit}button:disabled{cursor:default}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:6px}p{margin:0 0 1.5em}img{display:block;width:100%;height:auto}figure{margin:0}.skip{position:absolute;top:-100px;left:16px;background:var(--ivory);padding:12px;z-index:5}.skip:focus{top:0}.site-header{max-width:1320px;margin:auto;padding:28px 48px;display:flex;justify-content:space-between;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.brand{font:italic 38px/1.05 Georgia,serif;letter-spacing:.02em;color:var(--red);display:inline-flex;flex-direction:column;gap:10px}.brand span{font:10px/1.4 var(--sans);letter-spacing:.15em}.site-header nav{display:flex;gap:28px;font-size:12px}.site-header nav a{padding:10px 0}.site-header nav a:last-child{color:var(--red)}a:hover{color:var(--red)}.hero{max-width:1320px;margin:auto;padding:0 48px}.hero-copy{padding:68px 0 46px}.eyebrow{font:11px/1.6 var(--sans);letter-spacing:.2em;color:var(--soft)}h1{font:500 clamp(30px,3.6vw,52px)/1.65 var(--serif);letter-spacing:.08em;margin:20px 0 20px}.hero-sub{font-size:15px;margin:0;color:var(--red)}.hero-photo{overflow:hidden;border-radius:4px 4px 72px 4px}.hero-photo img{width:100%;height:auto;object-fit:contain}.hero-caption{display:flex;gap:40px;padding:38px 0 48px;align-items:flex-start;max-width:1000px;margin:auto}.hero-caption p{margin:0 0 8px;font-size:14px}.vertical-label{writing-mode:vertical-rl;font:10px/1 var(--sans);letter-spacing:.18em;color:var(--red);padding-top:6px}.scroll-link{margin-left:auto;font:italic 13px/2 Georgia,serif;display:flex;flex-direction:column;text-align:center;gap:12px}.section{max-width:1140px;padding:90px 40px;margin:auto}.section-heading{display:flex;gap:24px;align-items:baseline;margin-bottom:48px}.section-heading h2{font:normal clamp(40px,5.1vw,68px)/1.1 Georgia,serif;letter-spacing:-.04em;margin:0;color:var(--red)}.section-heading>span{font-size:12px;color:var(--soft);letter-spacing:.09em}.message-layout{display:grid;grid-template-columns:.9fr 1.3fr;gap:65px}.message-layout h3{font:500 25px/1.9 var(--serif);margin:0}.essay{max-width:700px}.essay p:last-child{margin-bottom:0}.message{border-top:1px solid var(--line)}.about-card{background:#fbf2eb;border-radius:32px;padding:52px;display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:center}.about-portrait .photo{border-radius:120px 120px 12px 12px;overflow:hidden}.name{font:500 30px/1.5 var(--serif);text-align:center;margin:22px 0 0}.name span{display:block;font:italic 15px/2 Georgia,serif;color:var(--red)}.favorites{border-top:1px solid var(--line);padding-top:22px;margin-top:28px}.favorites p{font-size:12px;margin:10px 0 0}.section-lead{font:500 25px/1.8 var(--serif);margin-top:-12px;margin-bottom:40px}.stories{padding-top:100px}.story-chapter{border-top:1px solid var(--line);margin-top:64px;padding-top:48px}.chapter-heading{display:grid;grid-template-columns:100px 1fr;gap:30px;align-items:start;max-width:860px;margin:0 auto 35px}.chapter-number{font:italic 64px/1.1 Georgia,serif;color:var(--muted)}.chapter-heading h3{font:500 28px/1.7 var(--serif);margin:0}.story-chapter .essay{margin:0 auto}.story-chapter blockquote{border-left:2px solid var(--muted);padding:6px 0 6px 26px;margin:35px 0 0;font:500 21px/1.9 var(--serif);color:var(--red)}.story-photo{max-width:700px;margin:40px auto 0;border-radius:18px;overflow:hidden}.perspective-band{background:var(--coral);margin-top:40px}.perspective-band .section{padding-top:90px;padding-bottom:90px}.perspective-title{font:500 28px/1.8 var(--serif);margin:0 auto 40px;max-width:700px}.perspective-band .essay{margin:auto}.closing-line{font:500 28px/1.9 var(--serif);text-align:center;color:var(--red);margin:55px 0 0}.services-intro{max-width:700px;margin-bottom:40px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.service-card{background:#fbf2eb;border:1px solid #edddd3;border-radius:28px;padding:38px;display:flex;flex-direction:column;align-items:flex-start}.card-number{font:normal 52px/1 Georgia,serif;color:var(--muted);margin-bottom:28px}.service-card h3{font:500 23px/1.7 var(--serif);margin:0 0 23px;overflow-wrap:anywhere}.service-card p{font-size:15px;line-height:2;margin-bottom:30px}.service-card>.pending-link,.service-card>.text-link{margin-top:auto}.text-link{display:flex;align-items:center;gap:25px;color:var(--red);font-size:14px;padding:10px 0;border:0;background:none;min-height:44px}.text-link span{font-size:23px}.pending-link{display:flex;flex-direction:column;align-items:flex-start}.pending-link small{font-size:10px;color:var(--soft);letter-spacing:.1em}.pending-link button{opacity:.65}.future{border-top:1px solid var(--line);margin-top:35px}.journal{padding-top:40px}.journal>p{max-width:700px}.journal-links{display:flex;gap:64px}.journal-links .text-link{font:italic 26px/1.5 Georgia,serif;min-width:160px;justify-content:space-between;border-bottom:1px solid var(--line)}.contact-band{background:var(--coral)}.contact-inner{max-width:650px;margin:auto;text-align:center}.contact-inner p{margin:0 0 32px}.contact-inner>.pending-link{align-items:center}.button{display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--red);border:1px solid var(--red);color:white;min-height:62px;border-radius:40px;padding:16px 30px;min-width:320px;font-size:16px}.button:hover{color:white}.pending-link .button{background:#d7b6ab;color:#57433b;border-color:#d7b6ab;opacity:1}.contact-inner small{margin-top:10px}footer{max-width:1240px;margin:auto;padding:55px 48px 30px;display:flex;flex-wrap:wrap;align-items:center;gap:24px}footer>p{font-size:12px;margin:0 0 0 auto}footer>small{font-size:10px;flex-basis:70%;color:var(--soft)}.back-top{font-size:11px;margin-left:auto;min-height:44px;display:flex;align-items:center}.photo-placeholder{background:repeating-linear-gradient(135deg,#f8efe7,#f8efe7 10px,#f6eae1 10px,#f6eae1 11px);color:var(--soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:250px;border:1px solid var(--line);font-size:13px;text-align:center;padding:24px}.photo-placeholder small{font-size:10px}.placeholder-flower{font:44px/1.3 Georgia,serif;color:var(--muted)}.photo-placeholder.hero-photo{aspect-ratio:3/2;min-height:0}.photo-placeholder.profile-photo{aspect-ratio:4/5;border-radius:120px 120px 12px 12px}.photo-placeholder.story-photo{min-height:260px}
@media(min-width:1500px){.hero{max-width:1320px}}@media(max-width:760px){body{font-size:17px;line-height:2;letter-spacing:.025em}.site-header{padding:22px 22px 18px;display:block}.brand{font-size:33px}.site-header nav{gap:0;justify-content:space-between;margin-top:24px;font-size:11px;flex-wrap:wrap}.site-header nav a{padding:7px 3px;min-height:40px}.hero{padding:0 16px}.hero-copy{padding:48px 8px 32px}.hero-copy .eyebrow{font-size:9px}h1{font-size:clamp(25px,6.5vw,40px);letter-spacing:.035em;line-height:1.8;margin:19px 0}.hero-sub{font-size:12px;letter-spacing:.015em}.hero-photo{border-radius:3px 3px 30px 3px}.hero-caption{padding:28px 8px 46px;gap:17px}.hero-caption p{font-size:14px;line-height:1.95}.vertical-label{font-size:8px}.scroll-link{display:none}.section{padding:65px 24px}.section-heading{flex-direction:column;gap:10px;margin-bottom:34px}.section-heading h2{font-size:46px}.section-heading>span{font-size:12px}.message-layout{display:block}.message-layout h3{font-size:24px;margin-bottom:30px}.about-card{display:block;padding:30px 24px;border-radius:24px;margin:0 -8px}.about-portrait{max-width:220px;margin:0 auto 32px}.about-card>div>p{font-size:16px}.favorites p{font-size:12px}.section-lead{font-size:23px;margin-top:0}.story-chapter{margin-top:45px;padding-top:30px}.chapter-heading{grid-template-columns:44px 1fr;gap:16px;margin-bottom:26px}.chapter-number{font-size:38px}.chapter-heading h3{font-size:22px;line-height:1.8}.story-chapter blockquote{font-size:19px;padding-left:17px}.perspective-band{margin-top:10px}.perspective-band .section{padding:65px 24px}.perspective-title{font-size:24px}.closing-line{font-size:24px}.service-grid{grid-template-columns:1fr;gap:20px}.service-card{padding:29px 26px;border-radius:24px}.card-number{font-size:45px;margin-bottom:20px}.service-card h3{font-size:23px}.service-card p{font-size:16px}.future{margin-top:0}.journal{padding-top:15px}.journal-links{flex-direction:column;gap:26px}.journal-links .text-link{width:100%;min-width:210px}.contact-inner{text-align:left}.button{min-width:0;width:100%;font-size:15px;padding:17px 23px;min-height:60px;gap:14px}.contact-inner>.pending-link{align-items:stretch}.contact-inner small{text-align:center}.contact-inner>.button{width:100%}footer{padding:40px 24px 20px;display:block}footer>p{margin:25px 0;font-size:12px}footer>small{display:block}.back-top{margin-top:12px;font-size:12px}.photo-placeholder{font-size:12px}.photo-placeholder.hero-photo{padding:12px}.hero-photo .placeholder-flower{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* 長いサービス名も、短い一文字だけが次の行に残らないよう整えます。 */
.service-card h3{width:100%;text-wrap:balance}.chapter-heading h3{ text-wrap:balance }
/* 写真配置の承認内容を反映。元写真の指定後に画像ごとの仕上がりを確認します。 */
.message-photo-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(240px,24vw,300px);gap:60px;align-items:start}.message-photo-layout h3{font:500 25px/1.9 var(--serif);margin:0 0 30px}.message-photo{width:100%;aspect-ratio:4/5;min-height:0;border-radius:16px;overflow:hidden;margin-top:6px}.message-photo img{height:100%;object-fit:cover;object-position:center bottom}.about-portrait .profile-photo{aspect-ratio:1;min-height:0;border-radius:16px;overflow:hidden}.profile-photo img{height:100%;object-fit:cover;object-position:center}.story-photo{width:100%;max-width:560px;aspect-ratio:1;min-height:0;margin:36px auto 0}.story-photo img{height:100%;object-fit:contain}.before-photo{width:100%;max-width:400px;aspect-ratio:1;min-height:0;margin:36px auto 0;border-radius:12px;overflow:hidden}.before-photo img{height:100%;object-fit:contain}.photo-caption{text-align:center;font-size:12px;color:var(--soft);margin:12px 0 34px}.lower-essay{margin-left:auto;margin-right:auto}.journal-links{max-width:700px;margin:32px auto 0}.journal .essay p:last-child{margin-bottom:0}footer>small{flex-basis:auto;margin-left:auto}
@media(max-width:760px){.message-photo-layout{display:flex;flex-direction:column;gap:30px}.message-photo-layout h3{font-size:24px}.message-photo{width:200px;align-self:center;margin:0}.about-portrait{max-width:200px}.before-photo{max-width:350px}.story-photo{max-width:100%}.photo-caption{font-size:11px}footer>small{margin:24px 0 0}}

.hero-photo{border-radius:4px}.story-photo,.before-photo{border-radius:0}.story-photo img,.before-photo img{object-fit:contain}.message-photo{align-self:start}
@media(max-width:760px){.message-photo{align-self:center}}

/* 確認後の修正：写真をJournalへ、Aboutをアーチ型へ。 */
.journal-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(240px,24vw,300px);gap:60px;align-items:start}.journal-photo{width:calc(100% - 32px);aspect-ratio:auto;overflow:visible;border-radius:0;margin:18px 16px}.journal-photo img{height:auto;object-fit:contain;border-radius:0}.journal-layout .journal-links{margin-left:0;margin-right:0;gap:40px}.about-portrait .profile-photo{aspect-ratio:4/5;border-radius:50% 50% 12px 12px / 40% 40% 12px 12px}.profile-photo img{object-position:center;object-fit:contain}.story-photo,.before-photo{width:100%;max-width:400px;aspect-ratio:1}.story-photo img,.before-photo img{object-fit:contain}footer{justify-content:space-between}footer>small{margin:0;flex-basis:auto}.back-top{margin-left:0}
@media(max-width:760px){.journal-layout{display:flex;flex-direction:column;gap:32px}.journal-photo{width:180px;align-self:center;margin:16px 0}.journal-layout .journal-links{gap:26px}.story-photo,.before-photo{max-width:400px}footer{display:flex;padding-top:30px;padding-bottom:24px}footer>small{margin:0}.back-top{margin-top:0}}

/* JournalのSNSリンク */
.journal-layout .journal-links{flex-wrap:wrap;gap:24px}.journal-layout .journal-links .text-link{min-width:135px;font-size:24px}
@media(max-width:760px){.journal-layout .journal-links{flex-direction:column;gap:26px}.journal-layout .journal-links .text-link{font-size:26px}}
