/* ===== 新レイアウト案（/ja/proposal/）=====
 * 既存サイトの変数(--color-*)・フォント・ヘッダ/フッタをそのまま使う。
 * 「ワイプ+樹状線」をやめ、ヒーロー → 3事業カード → 事業別の特集(3D+文) → 既存セクション の順で読ませる。
 */
.pp-eyebrow{font-size:12px;letter-spacing:.22em;font-weight:700;color:var(--color-primary);margin:0 0 14px}
.pp-eyebrow.center{text-align:center}
.pp-sec-title{font-size:clamp(26px,3vw,38px);line-height:1.35;margin:0 0 18px;font-weight:700;letter-spacing:.01em}
.pp-sec-title.center{text-align:center}
.pp-sec-lead{max-width:760px;margin:0 auto 44px;color:var(--color-text-muted);font-size:15.5px;line-height:1.9;text-align:center}
.btn-ghost{display:inline-block;background:transparent;color:var(--color-text);border:1px solid var(--color-gray-border);padding:16px 32px;font-weight:700;text-decoration:none;margin-top:20px;transition:border-color .3s,color .3s}
.btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}
.pp-more{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--color-primary);text-decoration:none;font-size:14px;margin-top:auto}
.pp-more::after{content:'→';transition:transform .25s}
a:hover .pp-more::after,.pp-more:hover::after{transform:translateX(4px)}

/* ---- ヒーロー ---- */
.pp-hero{position:relative;overflow:hidden;background:var(--color-base);transition:background-color .3s}
.pp-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;min-height:min(78vh,760px);padding-block:48px}
.pp-hero-title{font-size:clamp(28px,3.4vw,46px);line-height:1.3;margin:0 0 22px;font-weight:700;letter-spacing:.01em}
.pp-hero-lead{font-size:16px;line-height:2;color:var(--color-text-muted);max-width:520px;margin:0}
.pp-hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.pp-hero-cta .btn-primary{margin-top:20px}
.pp-hero-visual{position:relative;aspect-ratio:1/1;max-height:min(66vh,620px);margin:0 auto;width:100%}
.pp-hero-visual model-viewer{width:100%;height:100%;position:relative;z-index:1;background:transparent}
.pp-bg-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(90px,13vw,200px);font-weight:900;
  color:var(--color-text);opacity:.045;white-space:nowrap;pointer-events:none;z-index:0;letter-spacing:.02em;user-select:none}
.pp-hero-facts{display:grid;grid-template-columns:repeat(3,auto);gap:20px 28px;margin-top:34px;padding-top:24px;border-top:1px solid var(--color-gray-border)}
.pp-hero-facts div{font-size:12.5px;color:var(--color-text-muted);line-height:1.5}
.pp-hero-facts b{display:block;font-size:18px;white-space:nowrap;color:var(--color-text);letter-spacing:.02em}

/* ---- 3事業カード ---- */
.pp-biz{padding:72px 0 80px;background:var(--color-gray-light);transition:background-color .3s}
.pp-biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pp-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-gray-border);border-radius:14px;overflow:hidden;
  text-decoration:none;color:inherit;box-shadow:0 2px 10px var(--color-shadow);transition:transform .3s,box-shadow .3s,border-color .3s}
.pp-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px var(--color-shadow-strong);border-color:transparent}
.pp-card-media{aspect-ratio:16/10;background:var(--color-gray-light);position:relative;overflow:hidden}
.pp-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.pp-card:hover .pp-card-media img{transform:scale(1.04)}
.pp-card-media model-viewer{width:100%;height:100%;background:transparent}
.pp-card-media .pp-bg-text{font-size:64px;opacity:.06}
.pp-card-body{display:flex;flex-direction:column;gap:8px;padding:22px 24px 24px;flex:1}
.pp-card-tag{font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--color-primary)}
.pp-card-title{font-size:19px;font-weight:700;line-height:1.45;margin:0}
.pp-card-desc{font-size:13.5px;line-height:1.8;color:var(--color-text-muted);margin:0 0 10px}

/* ---- 事業特集（3D + 文） ---- */
.pp-feature{padding:96px 0;position:relative;overflow:hidden;transition:background-color .3s}
.pp-feature.alt{background:var(--color-gray-light)}
.pp-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.pp-feature.reverse .pp-feature-grid>.pp-feature-visual{order:2}
.pp-feature-visual{position:relative;aspect-ratio:1/1;max-height:520px;width:100%;margin:0 auto}
.pp-feature-visual model-viewer{width:100%;height:100%;position:relative;z-index:1;background:transparent}
.pp-feature-copy h2{font-size:clamp(26px,2.8vw,36px);line-height:1.35;margin:0 0 18px}
.pp-feature-copy .sub{font-size:13px;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 10px}
.pp-feature-copy p{font-size:15px;line-height:1.95;color:var(--color-text);margin:0 0 14px}
.pp-feature-copy ol{margin:6px 0 16px;padding-left:1.4em;font-size:15px;line-height:1.95}
.pp-feature-copy ol b{color:var(--color-text)}
.pp-feature-copy .btn-primary{margin-top:10px}

/* 施工事例の帯 */
.pp-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:56px}
.pp-strip a{display:block;position:relative;border-radius:10px;overflow:hidden;aspect-ratio:16/9;text-decoration:none;color:#fff;box-shadow:0 2px 10px var(--color-shadow)}
.pp-strip img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.pp-strip a:hover img{transform:scale(1.05)}
.pp-strip span{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;font-size:12px;line-height:1.4;background:linear-gradient(transparent,rgba(0,0,0,.7));text-shadow:0 1px 2px rgba(0,0,0,.6)}
.pp-strip span b{display:block;font-size:11px;letter-spacing:.14em;opacity:.9}
.pp-strip-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:56px}
.pp-strip-head .pp-eyebrow{margin:0}
.pp-strip-head+.pp-strip{margin-top:16px}

/* 登場（IntersectionObserver で .is-visible） */
/* 出現アニメ: 0.35秒・8px。時差はカード並びの「順に出る」感だけ残して最小に（合計で表示を遅らせない） */
.pp-reveal{opacity:0;transform:translateY(8px);transition:opacity .35s ease-out,transform .35s ease-out}
.pp-reveal.is-visible{opacity:1;transform:none}
.pp-reveal[data-delay="1"]{transition-delay:.05s}
.pp-reveal[data-delay="2"]{transition-delay:.1s}
@media(prefers-reduced-motion:reduce){.pp-reveal{transition:none;transform:none}}

@media(max-width:991px){
  .pp-hero-grid{grid-template-columns:1fr;min-height:auto;padding-block:36px 24px}
  .pp-hero-visual{max-height:52vh;order:-1}
  .pp-hero-facts{grid-template-columns:1fr 1fr}
  .pp-hero-facts b{white-space:normal;font-size:16px}
  .pp-biz-grid{grid-template-columns:1fr;gap:18px}
  .pp-feature{padding:64px 0}
  .pp-feature-grid{grid-template-columns:1fr;gap:28px}
  .pp-feature.reverse .pp-feature-grid>.pp-feature-visual{order:0}
  .pp-feature-visual{max-height:60vw}
  .pp-strip{grid-template-columns:repeat(2,1fr)}
}

/* ---- スマホ(<600px): 文を先に・3Dは控えめに ---- */
@media(max-width:599px){
  .pp-hero-grid{padding-block:20px 8px;gap:0}
  .pp-hero-copy{display:contents}                       /* 子を直接グリッドに出して順番を組み替える */
  .pp-hero-copy>*{order:1}
  .pp-hero-visual{order:2;aspect-ratio:auto;height:230px;max-height:none;margin:18px auto 6px}
  .pp-hero-facts{order:3;grid-template-columns:1fr;gap:8px;margin-top:8px}
  .pp-hero-facts div{font-size:12.5px}
  .pp-hero-facts b{display:inline;font-size:15px;margin-right:8px;white-space:nowrap}
  .pp-hero-title{font-size:27px;margin-bottom:14px}
  .pp-hero-lead{font-size:15px;line-height:1.85}
  .pp-hero-cta{gap:10px;flex-wrap:nowrap}
  .pp-hero-cta .btn-primary,.pp-hero-cta .btn-ghost{flex:1;width:auto;min-width:0;margin-top:12px;padding:14px 8px;text-align:center;font-size:14.5px;white-space:nowrap}
  .pp-bg-text{font-size:22vw}
  .pp-sec-lead{text-align:left;font-size:15px;margin-bottom:28px}
  .pp-biz{padding:56px 0 60px}
  .pp-card-media{aspect-ratio:16/7}
  .pp-feature{padding:52px 0}
  .pp-feature-grid{gap:18px}
  .pp-feature-visual{aspect-ratio:auto;height:200px;max-height:none}
  .pp-feature-copy h2{font-size:25px}
  .pp-feature-copy p,.pp-feature-copy ol{font-size:14.5px;line-height:1.85}
  .pp-strip-head{flex-direction:column;align-items:flex-start;gap:6px;margin-top:40px}
  .pp-strip{gap:10px}
  .pp-strip span{padding:8px 10px;font-size:11.5px}
  .column-card-placeholder{height:88px !important}
}
/* ライトテーマ: ND のパネル3Dは白塗装なので #F5F5F5 だと輪郭が消える。カードの絵面だけ一段濃くして分離させる
   (data-theme は描画前に必ず light/dark のどちらかが入る。未設定=JS無効時はライト扱いで正しい) */
:root:not([data-theme="dark"]) .pp-card-media{background:#e9e9e9}
