/* A service-use page for personal SNS photos; scoped to this page. */
.sns-page { background:var(--sphoto-paper); }
.sns-page .guide-header { background:var(--sphoto-paper); }
.sns-shell { max-width:1180px; margin:auto; padding:0 32px; }
.sns-shell .breadcrumbs { margin:22px 0 34px; }
.sns-kicker { margin:0 0 16px; font-size:12px; font-weight:700; letter-spacing:.1em; }
.sns-hero { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; padding:12px 0 56px; }
.sns-hero h1 { font-size:clamp(32px,3.1vw,46px); line-height:1.5; letter-spacing:-.04em; margin-bottom:22px; text-wrap:initial; }
.sns-lead { font-size:16px; line-height:2; margin-bottom:22px; }
.sns-answer { font-size:14px; line-height:2; max-width:440px; margin-bottom:20px; }
.sns-price { font-size:13px; margin:0; }
.sns-price strong { font-size:36px; font-weight:700; letter-spacing:-.02em; }
.sns-price strong span { font-size:16px; }
.sns-price-note { font-size:12px; margin:0 0 19px; }
.sns-button { border-radius:var(--sphoto-radius); letter-spacing:.05em; transition:background-color 180ms ease; background:var(--sphoto-ink); color:#fff; display:inline-flex; justify-content:space-between; align-items:center; gap:24px; padding:17px 24px; text-decoration:none; font-size:14px; font-weight:700; line-height:1.6; }
.sns-button:hover { background:var(--sphoto-hover); }
.sns-button:focus-visible { outline:3px solid #777; outline-offset:4px; }
.sns-small { font-size:11px; color:#666; line-height:1.9; margin:12px 0 0; }
.sns-hero-photos { display:grid; grid-template-columns:1.08fr .92fr; gap:18px; align-items:center; }
.sns-hero-photos figure { margin:0; }
.sns-hero-photos figure:first-child { grid-row:1 / 3; }
.sns-hero-photos img { width:100%; object-fit:cover; aspect-ratio:3 / 4; }
.sns-hero-photos figcaption { text-align:left; margin-top:6px; color:#444; font-size:11px; }
.sns-hero-photos > p { grid-column:1 / -1; font-size:10px; color:#777; text-align:right; margin:0; }
.sns-nav { display:flex; flex-wrap:wrap; gap:16px 32px; border-block:1px solid var(--line); padding:21px 0; }
.sns-nav a { font-size:12px; text-decoration:none; }
.sns-section { padding:68px 0; border-bottom:1px solid var(--line); scroll-margin-top:90px; }
.sns-section h2 { font-size:clamp(25px,3vw,34px); line-height:1.6; margin-bottom:32px; text-wrap:initial; }
.sns-uses { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.sns-uses span { display:block; font-size:10px; letter-spacing:.1em; color:#777; margin-bottom:15px; }
.sns-uses h3 { font-size:17px; margin-bottom:12px; }
.sns-uses p, .sns-fit p, .sns-steps p { font-size:14px; line-height:2; margin:0 0 16px; }
.sns-text-link { display:inline-block; font-size:13px; margin-top:20px; text-underline-offset:5px; }
.sns-fit { display:grid; grid-template-columns:.85fr 1fr; gap:64px; }
.sns-shell .meetup-schedule { margin:64px 0 0; padding-bottom:24px; border-bottom:0; }
.sns-schedule-next { padding:24px 0 60px; border-bottom:1px solid var(--line); }
.sns-schedule-next > p:first-child { font-size:14px; margin-bottom:18px; }
.sns-steps { list-style:none; margin:0 0 12px; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.sns-steps li { border-top:1px solid var(--line); padding-top:18px; }
.sns-steps li > span { font-size:12px; color:#777; }
.sns-steps h3 { font-size:16px; margin:12px 0; }
.sns-faq details { border-top:1px solid var(--line); padding:20px 0; }
.sns-faq summary { cursor:pointer; font-weight:700; font-size:15px; }
.sns-faq details p { font-size:14px; margin:16px 0 0; max-width:760px; }
.sns-final { padding:72px 32px; background:var(--sphoto-surface); text-align:center; margin:56px 0 0; }
.sns-final h2 { font-size:32px; margin-bottom:24px; }
.sns-final > p:not(.sns-kicker) { font-size:14px; }
.sns-final .sns-text-link { display:block; }
.sns-reading { padding:36px 0; font-size:12px; }
.sns-reading p { margin:0 0 8px; }
.sns-reading p:last-child { margin-top:24px; color:#666; }
@media(max-width:700px) {
 .sns-shell { padding:0 20px; }
 .sns-shell .breadcrumbs { font-size:10px; margin:18px 0 24px; }
 .sns-hero { grid-template-columns:1fr; gap:26px; padding:0 0 30px; }
 .sns-hero h1 { font-size:32px; margin-bottom:18px; }
 .sns-kicker { font-size:11px; margin-bottom:14px; }
 .sns-lead { font-size:14px; margin-bottom:18px; }
 .sns-answer { font-size:13px; margin-bottom:14px; }
 .sns-button { font-size:13px; padding:16px 18px; width:100%; gap:12px; }
 .sns-hero-photos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; align-items:start; }
 .sns-hero-photos figure:first-child { grid-row:auto; }
 .sns-hero-photos figcaption { font-size:9px; }
 .sns-hero-photos > p { font-size:9px; }
 .sns-nav { gap:12px 0; }
 .sns-nav a { width:50%; font-size:11px; }
 .sns-section { padding:44px 0; }
 .sns-section h2 { font-size:25px; margin-bottom:26px; }
 .sns-uses, .sns-fit, .sns-steps { grid-template-columns:1fr; gap:20px; }
 .sns-uses > div + div { border-top:1px solid var(--line); padding-top:20px; }
 .sns-uses h3 { font-size:17px; }
 .sns-fit { gap:0; }
 .sns-shell .meetup-schedule { margin-top:42px; }
 .sns-schedule-next { padding-bottom:42px; }
 .sns-steps li { display:flex; gap:20px; }
 .sns-steps h3 { margin:0 0 10px; }
 .sns-steps li > span { padding-top:3px; }
 .sns-final { margin-top:40px; padding:38px 20px; }
 .sns-final h2 { font-size:25px; }
 .sns-faq summary { font-size:14px; line-height:1.8; }
}
@media(max-width:350px) { .sns-hero h1 { font-size:28px; } .sns-shell { padding:0 16px; } }

@media(prefers-reduced-motion:reduce) { .sns-button { transition:none; } }
