/* 渋谷の立体地形図 詳細ページ（v2）
   色・書体は現行 feel-physics.jp（06-works.css の :root）に合わせています。
   サイト共通CSS（06-works.css）を併せて読み込む場合も、.sb- 接頭辞で衝突しません。 */
:root{
  --sb-paper:#fcfcf8;  /* 背景（サイト --paper） */
  --sb-ink:#23342c;    /* 文字（サイト --ink） */
  --sb-sub:#56675b;    /* 補足文字（サイト --sub） */
  --sb-green:#244d3a;  /* メインの緑（サイト --green／ボタン） */
  --sb-green-dk:#173c29; /* ボタンのホバー（サイトと同じ） */
  --sb-line:#c7d0c5;   /* 罫線（サイト --line） */
  --sb-tint:#eff3ec;   /* 淡い緑の面（サイト --tint） */
  --sb-olive:#7a8b4d;  /* ロゴの「.」（サイト .brand-dot） */
  --sb-serif:WorksSerif,"Noto Serif CJK JP","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sb-sans:WorksSans,"Noto Sans CJK JP","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body.sb-page{margin:0;background:var(--sb-paper);color:var(--sb-ink);font-family:var(--sb-sans);font-size:16px;line-height:1.85;-webkit-text-size-adjust:100%}
.sb-page img{display:block;max-width:100%;height:auto}
.sb-page a{color:inherit}
.sb-page a:focus-visible{outline:3px solid #a35e1c;outline-offset:5px}
:where(.sb-page) :where(h1,h2,h3,p,ul,ol,dl,dd,figure){margin:0}

/* ヘッダー（サイトのヘッダーと同じ構成） */
.sb-header{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:1248px;margin:0 auto;padding:22px 64px;border-bottom:1px solid var(--sb-line)}
.sb-brand{display:flex;flex-direction:column;text-decoration:none;line-height:1.2}
.sb-brand b{font-size:22px;font-weight:700;letter-spacing:-.01em}
.sb-dot{color:var(--sb-olive)}
.sb-brand span:last-child{font-size:10px;letter-spacing:.2em;color:var(--sb-sub);margin-top:4px}
.sb-header-cta{font-size:13px;text-decoration:none;border-bottom:1px solid var(--sb-ink);padding:10px 0 4px;white-space:nowrap}

/* 等高線の背景（サイトの contour-field.svg を薄い紙色で覆う） */
.sb-stage{position:relative;isolation:isolate}
.sb-stage::before{content:"";position:absolute;inset:0;z-index:-2;background:url("contour-field.svg") center top / max(1440px,100%) auto repeat-y;pointer-events:none}
.sb-content{position:relative;max-width:1248px;margin:0 auto;padding:0 64px 24px}
.sb-content::before{content:"";position:absolute;z-index:-1;inset:0 40px;background:rgb(252 252 248 / .88);pointer-events:none}

/* ヒーロー */
.sb-hero{display:grid;grid-template-columns:1fr 1.15fr;gap:52px;align-items:center;padding:56px 0 64px}
.sb-eyebrow{font-size:12px;letter-spacing:.12em;color:var(--sb-sub)}
.sb-hero h1{font:500 46px/1.45 var(--sb-serif);letter-spacing:.02em;margin-top:12px}
.sb-lead{font:500 21px/1.7 var(--sb-serif);color:var(--sb-green);margin-top:12px}
.sb-body{font-size:15px;margin-top:16px}
.sb-spec{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.sb-spec li{background:var(--sb-tint);padding:6px 12px;font-size:13px;line-height:1.5}
.sb-spec b{color:var(--sb-green);font-size:15px;margin-right:6px}
.sb-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-width:240px;min-height:50px;margin-top:26px;padding:13px 22px;background:var(--sb-green);border:1px solid var(--sb-green);color:#fff !important;font-size:15px;line-height:1.6;text-decoration:none}
.sb-btn:hover{background:var(--sb-green-dk)}
.sb-btn-note{font-size:12px;color:var(--sb-sub);margin-top:10px}

/* 写真枠：撮り直し写真（白い机・横3:2）にそのまま差し替え可能 */
.sb-photo-frame{background:var(--sb-tint);aspect-ratio:3/2;overflow:hidden}
.sb-photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.sb-photo figcaption{font-size:11px;color:var(--sb-sub);margin-top:10px;line-height:1.7}

/* セクション共通（サイトの story-label と同じ見せ方） */
.sb-sec{padding:56px 0;border-top:1px solid var(--sb-line)}
.sb-label{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.04em;margin-bottom:10px}
.sb-label span{font-size:14px;color:var(--sb-green)}
.sb-sec h2,.sb-contact h2{font:500 29px/1.7 var(--sb-serif);margin-bottom:26px}

.sb-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sb-card{background:#fff;border:1px solid var(--sb-line);border-top:3px solid var(--sb-green);padding:22px 22px 20px}
.sb-card h3{font:500 21px/1.5 var(--sb-serif);color:var(--sb-green)}
.sb-for{font-size:12px;color:var(--sb-sub);margin-top:2px}
.sb-card p:last-child{font-size:14.5px;margin-top:10px;line-height:1.8}
.sb-curri{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-top:26px}
.sb-curri div{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.7}
.sb-curri dt{flex:none;background:var(--sb-green);color:#fff;font-size:12px;padding:2px 9px;margin-top:2px}
.sb-note{font-size:12px;color:var(--sb-sub);margin-top:16px}

.sb-flow{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:sb}
.sb-flow li{counter-increment:sb;position:relative;background:#fff;border:1px solid var(--sb-line);padding:46px 18px 18px;font-size:14px;line-height:1.75}
.sb-flow li::before{content:counter(sb);position:absolute;left:18px;top:14px;width:24px;height:24px;border-radius:50%;background:var(--sb-green);color:#fff;font-size:13px;line-height:24px;text-align:center}
.sb-flow li:not(:last-child)::after{content:"";position:absolute;right:-12px;top:22px;width:8px;height:8px;border-top:1.5px solid var(--sb-green);border-right:1.5px solid var(--sb-green);transform:rotate(45deg)}
.sb-flow b{display:block;font-size:16px;color:var(--sb-green);margin-bottom:6px}
.sb-flow span{display:block}

.sb-faq{border-top:1px solid var(--sb-line)}
.sb-faq div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px 36px;padding:18px 0;border-bottom:1px solid var(--sb-line)}
.sb-faq dt{font-weight:700;font-size:15.5px}
.sb-faq dt::before{content:"Q.";color:var(--sb-green);margin-right:10px;font-family:var(--sb-serif)}
.sb-faq dd{font-size:15px}
.sb-faq dd small{display:block;font-size:12px;color:var(--sb-sub);margin-top:4px}
.sb-text-action{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:14px;font-size:14px;color:var(--sb-green) !important;text-underline-offset:5px}

.sb-ph{display:inline-block;background:#fff3b0;border:1.5px dashed #b38600;color:#6b4e00;font-weight:700;font-size:.95em;line-height:1.5;padding:1px 8px;white-space:nowrap}

.sb-two{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start}
.sb-record{list-style:none;margin:0;padding:0 0 0 22px;border-left:2px solid var(--sb-green);display:grid;gap:16px}
.sb-record li{position:relative;font-size:15px;line-height:1.7}
.sb-record li::before{content:"";position:absolute;left:-29px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--sb-paper);border:3px solid var(--sb-green)}
.sb-record time{display:block;font-size:12px;font-weight:700;color:var(--sb-green)}
.sb-profile{background:var(--sb-tint);padding:22px 24px}
.sb-profile-k{font-size:12px;color:var(--sb-sub);letter-spacing:.08em}
.sb-name{font:500 20px/1.6 var(--sb-serif)}
.sb-name small{font:400 12px/1.6 var(--sb-sans);color:var(--sb-sub);margin-left:10px}
.sb-profile ul{margin:10px 0 0;padding-left:1.2em;font-size:14px;line-height:1.8}

.sb-contact{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:center;background:var(--sb-green);color:#fff;padding:44px 48px;margin:8px 0 28px}
.sb-contact .sb-eyebrow{color:rgb(255 255 255 / .8)}
.sb-contact h2{margin:8px 0 12px;color:#fff}
.sb-contact p{font-size:15px}
.sb-btn-light{background:#fff;border-color:#fff;color:var(--sb-green) !important}
.sb-btn-light:hover{background:var(--sb-tint)}
.sb-contact dl{background:#fff;color:var(--sb-ink);padding:22px 24px;display:grid;gap:10px}
.sb-contact dl div{display:grid;grid-template-columns:4em minmax(0,1fr);gap:10px;font-size:15px;line-height:1.6}
.sb-contact dt{font-size:12px;color:var(--sb-green);font-weight:700;padding-top:3px}
.sb-contact dd{overflow-wrap:anywhere}
.sb-contact dd a{color:var(--sb-green)}
.sb-credit{font-size:11px;color:var(--sb-sub);line-height:1.8}
.sb-back{margin-top:12px;font-size:14px}
.sb-back a{display:inline-flex;align-items:center;min-height:44px;color:var(--sb-green)}
.sb-footer{border-top:1px solid var(--sb-line);max-width:1248px;margin:0 auto;padding:18px 64px 32px;font-size:12px;color:var(--sb-sub)}

@media(max-width:1050px){
  .sb-header,.sb-content,.sb-footer{padding-left:36px;padding-right:36px}
  .sb-content::before{inset:0 12px}
  .sb-hero{gap:32px}
  .sb-hero h1{font-size:40px}
  .sb-flow{grid-template-columns:1fr 1fr}
  .sb-flow li:nth-child(2)::after{display:none}
}
@media(max-width:700px){
  body.sb-page{font-size:15px}
  .sb-header,.sb-content,.sb-footer{padding-left:22px;padding-right:22px}
  .sb-header{padding-top:16px;padding-bottom:14px}
  .sb-brand b{font-size:19px}
  .sb-header-cta{font-size:12px}
  .sb-content::before{inset:0;background:rgb(252 252 248 / .94)}
  .sb-stage::before{background-size:1000px auto}
  .sb-hero{grid-template-columns:1fr;gap:24px;padding:28px 0 40px}
  .sb-photo{order:-1}
  .sb-hero h1{font-size:34px;margin-top:8px}
  .sb-lead{font-size:18px}
  .sb-btn{width:100%}
  .sb-sec{padding:40px 0}
  .sb-sec h2,.sb-contact h2{font-size:24px;margin-bottom:20px}
  .sb-cards,.sb-curri,.sb-two,.sb-contact{grid-template-columns:1fr}
  .sb-cards{gap:14px}
  .sb-flow{grid-template-columns:1fr;gap:12px}
  .sb-flow li{padding:16px 16px 16px 56px}
  .sb-flow li::before{left:16px;top:18px}
  .sb-flow li::after{display:none}
  .sb-faq div{grid-template-columns:1fr;gap:6px}
  .sb-two{gap:28px}
  .sb-contact{padding:30px 20px;gap:24px}
  .sb-contact dl{padding:18px 14px}
  .sb-contact dl div{grid-template-columns:3.4em minmax(0,1fr);font-size:14px}
  .sb-name small{display:block;margin:0}
}
