/* 出所: Claude生成
   加入事例ページ 共通テンプレート（FlyCart／産業機・防災・農業などへ展開可）
   - このファイル単体でページが成立する（既存LPの style_v3.css には依存しない）
     ※LPのCSSが読めない配置でもフッターのSVGが巨大化しないよう、ヘッダー・フッターの指定を移植
   - 記事部分のクラスはすべて cs- 接頭辞
   - 事例ごとの色替えは :root の変数だけを変更する */

:root{
  /* 既存LP（style_v3.css）と同じ値 */
  --navy-900:#0C1E33; --navy-800:#122A45; --navy-700:#16304D;
  --line:#DEE6EF; --cloud:#EFF3F8; --orange:#DD6B22; --ink:#1E2A36;
  --font-jp:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,system-ui,sans-serif;
  --font-en:"Barlow Condensed",Helvetica,Arial,"Noto Sans JP",Meiryo,sans-serif;
  /* 事例ページ */
  --cs-brand:#3365A6;      /* AEブランドカラー */
  --cs-brand-ink:#183F72;  /* 見出し文字 */
  --cs-accent:#F0C430;     /* カテゴリラベル */
  --cs-line:#DCE3EC;
  --cs-text:#26313D;
  --cs-muted:#5D6B7A;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:80px}
body{font-family:var(--font-jp);color:var(--ink);background:#fff;line-height:1.8;font-size:16px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
body.modal-open{overflow:hidden}
:where(a,button):focus-visible{outline:2.5px solid var(--orange);outline-offset:3px;border-radius:4px}

/* ===== サイト共通パーツ（既存LP style_v3.css から移植：ヘッダー／ボタン／フッター） ===== */
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
header#hdr{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.97);
  box-shadow:0 2px 20px rgba(12,30,51,.07);padding:11px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center}
.brand .logo{height:19px;width:auto}
.brand-tag{font-weight:700;font-size:14px;color:var(--navy-700);margin-left:11px;padding-left:11px;
  border-left:1.5px solid var(--line);line-height:1;white-space:nowrap}
.nav-links{display:flex;gap:18px;align-items:center}
.nav-links a{font-size:14px;color:var(--ink);font-weight:500;white-space:nowrap}
.nav-links a:hover{color:#4E7FB0}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;border-radius:999px;padding:12px 22px;font-size:16px;
  transition:box-shadow .2s;cursor:pointer;border:none;white-space:nowrap}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 20px rgba(221,107,34,.28)}
.btn-primary:hover{box-shadow:0 12px 26px rgba(221,107,34,.36)}
.btn[target="_blank"]::after{content:"↗";font-size:1.05em;font-weight:800;line-height:1;margin-left:-2px}
.nav .btn{padding:10px 18px;font-size:14.5px}
.nav-close,.nav-cta{display:none}
.hamb{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.hamb span{width:24px;height:2px;background:var(--navy-700)}

footer.site-footer{background:var(--cloud);color:#57636F;padding:46px 0 38px;font-size:13.5px;line-height:1.85;border-top:1px solid var(--line)}
.fnote{border:1px solid var(--line);background:#fff;border-radius:12px;padding:18px 20px;margin-bottom:22px}
.discl{color:var(--ink);font-size:14px;line-height:2}
.flinks{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;margin:22px 0 0}
.flinks a{color:var(--navy-700);text-decoration:underline;font-size:13.5px}
.fsites{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.fsite{display:flex;align-items:center;gap:9px;padding:8px 12px 8px 9px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy-700)}
a.fsite:hover{border-color:var(--navy-700)}
.fsite-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:rgba(22,48,77,.08);flex:0 0 auto}
.fsite-ic svg{width:17px;height:17px}
.fsite-tx{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.fsite-tx b{font-size:12.5px;font-weight:700;white-space:nowrap}
.fsite-tx small{font-size:10.5px;color:#8694A3;margin-top:1px}
.fcopy{font-family:var(--font-en);font-size:11px;color:#8694A3;letter-spacing:.04em;margin-top:24px}

@media (max-width:1024px){
  .nav-links{position:fixed;inset:0 0 0 auto;width:min(80vw,330px);background:var(--navy-800);flex-direction:column;
    align-items:stretch;text-align:center;gap:4px;transform:translateX(100%);transition:transform .35s;padding:80px 28px 32px;overflow-y:auto}
  .nav-links.open{transform:none}
  .nav-links a{color:#fff;font-size:17px}
  .nav-links a:not(.nav-cta){padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav-close{display:block;position:absolute;top:18px;right:20px;background:none;border:none;color:#fff;font-size:38px;line-height:1;cursor:pointer;padding:2px 8px}
  .nav-cta{display:inline-flex;justify-content:center;margin-top:16px;font-size:17px;padding:14px 26px}
  .hamb{display:flex}
  .nav>.btn{display:none}
  .fsites{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .brand .logo{height:17px}
  .brand-tag{font-size:13.5px;margin-left:9px;padding-left:9px}
  .fsites{grid-template-columns:1fr}
}

/* ===== 事例記事 ===== */
.cs{
  --cs-wide:1120px;   /* コンテンツ最大幅 */
  --cs-sec-gap:52px;  /* 写真付きの章：本文と写真の間隔 */
  --cs-narrow:800px;  /* 文章だけのブロックの幅 */
  --cs-gutter:24px;
  --cs-gap:56px;      /* HEROの文字と写真の間隔 */
  --cs-tint:#EEF3F9;  /* 淡いブルーグレー（保険料割引の欄のみ） */
  padding-top:61px;   /* 固定ヘッダー分 */
  color:var(--cs-text);font-size:18px;line-height:1.85;
}
.cs-wrap{max-width:calc(var(--cs-wide) + var(--cs-gutter)*2);margin:0 auto;padding:0 var(--cs-gutter)}
.cs-narrow{max-width:calc(var(--cs-narrow) + var(--cs-gutter)*2);margin-left:auto;margin-right:auto;padding:0 var(--cs-gutter)}
.cs h1,.cs h2,.cs-subtitle,.cs-leadquote p{word-break:keep-all;overflow-wrap:anywhere}
.cs p{overflow-wrap:anywhere}

/* ---------- 1. パンくず（ヘッダー直下・本文と左端をそろえる） ---------- */
.cs-breadcrumb{padding-top:16px;padding-bottom:16px}
.cs-breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;font-size:12.5px;line-height:1.7;color:var(--cs-muted)}
.cs-breadcrumb li+li::before{content:"›";margin:0 .6em;color:#A3AFBC}
.cs-breadcrumb a{color:var(--cs-muted);text-decoration:underline;text-decoration-color:#C3CCD6;text-underline-offset:2px}
.cs-breadcrumb a:hover{color:var(--cs-brand)}

/* ---------- 2・3. HERO（白背景。左46％：タイトル・基本情報・取材者情報／右54％：現場写真 最大560px・4:3） ---------- */
.cs-hero{padding:12px 0 0}
.cs-hero-grid{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);grid-template-areas:". photo" "body photo" "person photo" ". photo";grid-template-rows:1fr auto auto 1fr;
  column-gap:var(--cs-gap);align-items:start}
.cs-hero-body{grid-area:body}
.cs-hero-photo{grid-area:photo;margin:0;width:100%;max-width:560px;justify-self:end}
.cs-hero-photo img{width:100%;height:auto}
.cs-hero-photo figcaption{margin-top:8px;font-size:13px;line-height:1.5;color:#4E5B69}
.cs-hero-person{grid-area:person;margin:32px 0 0;display:flex;align-items:center;gap:20px}
.cs-hero-person img{width:128px;height:auto;flex:0 0 128px}
.cs-hero-person figcaption{display:flex;flex-direction:column;line-height:1.5}
.cs-person-label{font-size:12.5px;color:var(--cs-muted);letter-spacing:.04em}
.cs-person-company{font-size:15px;color:var(--cs-text);margin-top:6px}
.cs-person-name{font-size:19px;font-weight:700;color:var(--cs-brand-ink);margin-top:2px}
.cs-label{display:inline-block;background:var(--cs-accent);color:#2E2500;font-weight:700;font-size:13.5px;letter-spacing:.04em;line-height:1;padding:8px 14px;border-radius:999px}
.cs-title{color:var(--cs-brand-ink);font-weight:900;font-size:clamp(30px,3.3vw,46px);line-height:1.3;margin-top:22px}
.cs-subtitle{color:var(--cs-brand);font-weight:500;font-size:clamp(17px,1.5vw,20px);line-height:1.6;margin-top:16px}
.cs-meta{display:grid;gap:2px;margin-top:28px;padding-top:16px;border-top:1px solid var(--cs-line);font-size:14.5px;line-height:1.7}
.cs-meta div{display:flex}
.cs-meta dt{color:var(--cs-muted);min-width:5.5em}
.cs-meta dd{color:var(--cs-brand-ink);font-weight:500}

/* ---------- 4. 導入部（1列：引用 → 導入文） ---------- */
.cs-intro-sec{padding:64px 0 8px}
.cs-intro{max-width:850px}
.cs-intro .cs-lead{max-width:820px}
.cs-lead{margin-top:28px}

/* 発言は3段階：メイン（冒頭）＞重要（03章）＞その他。いずれも左の細い線のみで、カード・背景・大きな引用符は使わない */
.cs-quote{margin:0;border-left:3px solid var(--cs-brand);padding:2px 0 2px 20px}
.cs-quote p{color:var(--cs-brand-ink);font-weight:500;font-size:19px;line-height:1.8}
.cs-quote-key p{font-weight:600;font-size:21px;line-height:1.75}
.cs-quote-main{max-width:850px}
.cs-quote-main p{font-weight:600;font-size:clamp(22px,2vw,26px);line-height:1.65}

/* ---------- 5. 事例本文（章ごとにレイアウトを変える。DOM順：見出し → 冒頭文 → 写真 → 残りの本文） ---------- */
.cs-sec{padding:48px 0}
.cs-intro-sec+.cs-sec{padding-top:88px}
.cs-sec-head h2{color:var(--cs-brand-ink);font-size:clamp(23px,2.3vw,28px);font-weight:700;line-height:1.45}
.cs-sec-head h2::before{content:"";display:block;width:28px;height:2px;background:var(--cs-accent);margin-bottom:14px}
.cs-first{margin-top:20px}
.cs-rest{margin-top:22px}
.cs-rest>*+*{margin-top:22px}
.cs-rest>.cs-quote,.cs-rest>.cs-quote+*{margin-top:28px}
.cs-rest>.cs-quote-key,.cs-rest>.cs-quote-key+*{margin-top:40px}
.cs-rest>.cs-quote:first-child{margin-top:6px} /* .cs-restの上余白22px＋6px＝28px */
.cs-rest>.cs-quote-key:first-child{margin-top:18px} /* 22px＋18px＝40px */
.cs-sec-grid{display:grid;column-gap:var(--cs-gap);align-items:start}
.cs-sec-head{grid-area:head}
.cs-first{grid-area:first}
.cs-media{grid-area:media}
.cs-rest{grid-area:rest}

.cs-fig{margin:0}
.cs-fig img{width:100%;height:auto;background:var(--cs-line)}
.cs-fig figcaption{font-size:13px;line-height:1.5;color:#4E5B69;margin-top:8px}

/* 写真付きの章（01〜03）：本文54％／写真46％で共通。左右交互の章は並び順だけ入れ替え、比率は変えない。
   高さはどこも固定しない（各要素の内容量と写真の縦横比で決まる） */
.cs-sec-a .cs-sec-grid,.cs-sec-c .cs-sec-grid{grid-template-columns:minmax(0,54fr) minmax(0,46fr);grid-template-areas:"head media" "first media" "rest media";grid-template-rows:auto auto 1fr;column-gap:var(--cs-sec-gap)}
.cs-sec-b .cs-sec-grid{grid-template-columns:minmax(0,46fr) minmax(0,54fr);grid-template-areas:"media head" "media first" "media rest";grid-template-rows:auto auto 1fr;column-gap:var(--cs-sec-gap)}
/* 01の補足写真（2枚目）は写真カラムの68％で、右端を主写真にそろえる */
.cs-sec-a .cs-fig-sub{width:68%;margin:22px 0 0 auto}

/* 04：写真なし。本文幅800pxの1列（左端は他の章とそろえる） */
.cs-sec-text .cs-sec-grid{display:block;max-width:var(--cs-narrow)}

/* ---------- 6・7. 取材企業／保険料割引 ---------- */
.cs-info{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:72px;padding-bottom:8px}
.cs-info-h{color:var(--cs-brand-ink);font-size:17px;font-weight:700;line-height:1.5}
.cs-company{font-size:19px;font-weight:700;margin-top:10px;color:var(--cs-brand-ink)}
.cs-info-text{font-size:15px;line-height:1.85;margin-top:8px}
.cs-info-link{margin-top:8px;font-size:15px}
.cs-info-link a{color:var(--cs-brand);text-decoration:underline;text-underline-offset:3px;word-break:break-all}
.cs-discount{background:var(--cs-tint);padding:22px 24px}
.cs-list{list-style:none;margin-top:10px;font-size:15px;line-height:1.7}
.cs-list li{position:relative;padding-left:1em}
.cs-list li+li{margin-top:4px}
.cs-list li::before{content:"・";position:absolute;left:0}

/* ---------- 8. 記事末尾CTA（1回のみ） ---------- */
.cs-cta{margin-top:56px;padding:40px 0 0;border-top:1px solid var(--cs-line);text-align:center}
.cs-cta-h{color:var(--cs-brand-ink);font-size:20px;font-weight:700;line-height:1.6}
.cs-cta-btns{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:20px}
.cs-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:12px 32px;border-radius:999px;
  font-weight:700;font-size:16.5px;line-height:1.4;word-break:keep-all;transition:box-shadow .2s}
.cs-btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 20px rgba(221,107,34,.28);min-width:min(100%,440px)}
.cs-btn-primary:hover{box-shadow:0 12px 26px rgba(221,107,34,.38)}
.cs-btn-link{min-height:44px;padding:8px 12px;color:var(--cs-brand);font-size:15px;text-decoration:underline;text-underline-offset:3px}
.cs-arrow{line-height:1}
.cs-notes{margin-top:32px;margin-bottom:56px;color:var(--cs-muted);font-size:12.5px;line-height:1.9}

/* ===== タブレット ===== */
@media (max-width:1024px){
  .cs{--cs-gap:40px;--cs-sec-gap:40px}
}

/* ===== スマートフォン：PCの左右配置を縮小せず、見出し → 冒頭文 → 写真 → 残りの本文 の1列に ===== */
@media (max-width:860px){
  .cs-hero{padding:16px 0 8px}
  .cs-hero-grid{grid-template-columns:1fr;grid-template-areas:"body" "photo" "person";grid-template-rows:auto;row-gap:20px}
  .cs-hero-person{margin-top:0;gap:16px}
  .cs-hero-person img{width:112px;flex-basis:112px}
  .cs-hero-photo{max-width:none}
  .cs-hero-photo img{margin:0 calc(var(--cs-gutter) * -1);width:calc(100% + var(--cs-gutter)*2);max-width:none}
  .cs-title{font-size:30px;margin-top:16px}
  .cs-meta{margin-top:20px;padding-top:12px}

  .cs-intro-sec{padding:44px 0 0}
  .cs-sec{padding:40px 0}
  .cs-intro-sec+.cs-sec{padding-top:56px}
  .cs-quote p{font-size:18px}
  .cs-quote-key p{font-size:19px}
  .cs-quote-main p{font-size:21px}
  .cs-info{grid-template-columns:1fr;gap:28px;padding-top:48px}
}
@media (max-width:760px){
  .cs{--cs-gutter:20px;padding-top:56px;font-size:17px}
  .cs-breadcrumb{padding-top:12px;padding-bottom:12px}
  .cs-btn-primary{width:100%;padding:12px 20px;font-size:16px}
}

/* 写真付きの章：900px以下は1列（見出し → 本文 → 写真）。本文・写真とも幅100％ */
@media (max-width:900px){
  .cs-sec-grid,.cs-sec-a .cs-sec-grid,.cs-sec-b .cs-sec-grid,.cs-sec-c .cs-sec-grid{display:block}
  .cs-rest{margin-top:24px}
  .cs-rest>*+*{margin-top:24px}
  .cs-media{margin-top:32px}
  .cs-sec-a .cs-fig-sub{width:100%;margin:20px 0 0}
}

/* ===== 写真の注記（画像は加工せずHTMLで重ねる。座標は --x / --y、リング径は --d） ===== */
.cs-annot{position:relative}
.cs-annot-ring{position:absolute;left:var(--x);top:var(--y);width:var(--d);aspect-ratio:1;transform:translate(-50%,-50%);
  border:3px solid var(--cs-accent);border-radius:50%;box-shadow:0 0 0 2px rgba(0,0,0,.25);pointer-events:none}
.cs-annot-label{position:absolute;left:var(--x);top:var(--y);background:rgba(24,63,114,.92);color:#fff;font-size:14px;font-weight:700;
  line-height:1.4;padding:5px 10px;border-radius:3px;white-space:nowrap;pointer-events:none}
.cs-annot-up::before{content:"↑ "}
.cs-annot-up{transform:translateX(-50%)}
@media (max-width:760px){.cs-annot-label{font-size:12px;padding:4px 8px}}

/* ===== 写真のクリック拡大（ライトボックス）。対象：本文の写真とHEROの現場写真 ===== */
.cs-zoom{position:relative;display:block;cursor:zoom-in;color:inherit}
.cs-zoom::after{content:"";position:absolute;right:10px;bottom:10px;width:32px;height:32px;border-radius:50%;
  background:rgba(20,32,48,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center/18px no-repeat;
  opacity:.75;transition:opacity .2s;pointer-events:none}
.cs-zoom:hover::after,.cs-zoom:focus-visible::after{opacity:1}
.cs-zoom:focus-visible{outline:3px solid var(--cs-brand);outline-offset:3px}

.cs-lightbox{padding:0;border:none;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;margin:0;overflow:hidden}
.cs-lightbox::backdrop{background:rgba(0,0,0,.86)}
.cs-lightbox[open]{display:flex;align-items:center;justify-content:center}
.cs-lb-figure{margin:0;display:flex;flex-direction:column;align-items:center;max-width:min(92vw,1600px)}
.cs-lb-figure img{display:block;max-width:100%;max-height:calc(100vh - 120px);width:auto;height:auto;object-fit:contain;background:#222}
.cs-lb-figure figcaption{color:#fff;font-size:14px;line-height:1.6;margin-top:10px;text-align:center}
.cs-lb-close{position:fixed;top:14px;right:14px;width:44px;height:44px;border:none;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;
  font-size:28px;line-height:1;cursor:pointer}
.cs-lb-close:hover{background:rgba(255,255,255,.26)}
.cs-lb-close:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media (max-width:760px){
  .cs-lb-figure{max-width:100vw}
  .cs-lb-figure img{max-height:calc(100vh - 140px)}
  .cs-lb-figure figcaption{padding:0 16px;font-size:13px}
}

/* ===== 追加パーツ（2社目〜。既存ページは使っていないクラスのみ＝既存ページの見た目は変わらない） ===== */
/* HERO：タイトル54％／写真46％（タイトルを主役にする版）。写真は縦横比を変えずに列幅いっぱい */
@media (min-width:861px){.cs-hero--title-lead .cs-hero-grid{grid-template-columns:minmax(0,54fr) minmax(0,46fr)}}
.cs-hero--title-lead .cs-hero-photo{max-width:none}
/* 取材者の顔写真の枠（写真が届くまでの仮置き。大きさはソラカケ株式会社ページの写真と同じ 128px／スマホ112px） */
.cs-person-ph{width:128px;flex:0 0 128px;aspect-ratio:538/558;background:#EEF2F6;border:1px solid var(--cs-line)}
@media (max-width:860px){.cs-person-ph{width:112px;flex-basis:112px}}
/* 取材者：顔写真なし（文字のみ）。写真が届いたら img を追加して --text を外せば、既存ページと同じ並びになる */
.cs-hero-person--text{margin-top:28px}
.cs-hero-person-txt{display:flex;flex-direction:column;line-height:1.5}
.cs-hero-person--text .cs-person-name{font-size:21px}
/* 導入文が2段落ある場合の段落間 */
.cs-intro .cs-lead+.cs-lead{margin-top:22px}
@media (max-width:860px){.cs-hero-person--text{margin-top:4px}}
/* 写真提供の表記（キャプションの下・本文より小さく薄いグレー） */
.cs-credit{display:block;margin-top:2px;font-size:12px;line-height:1.5;color:#6B7785}
.cs-credit>span{display:inline-block}  /* 括弧書きの途中で改行しない */
.cs-lb-credit{display:block;margin-top:2px;font-size:12px;color:rgba(255,255,255,.72)}
.cs-photo-source{margin-top:10px;font-size:13px;line-height:1.7;color:var(--cs-muted)}
/* 外部リンク（別タブ）の目印 */
.cs-ext::after{content:"↗";display:inline-block;margin-left:.25em;text-decoration:none}
.cs-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== 狭いスマートフォン（〜400px）：発言が細かく折り返さないよう、発言だけわずかに調整 ===== */
@media (max-width:400px){
  .cs-quote{padding-left:16px}
  .cs-quote p{font-size:17px}
  .cs-quote-key p{font-size:18px}
  .cs-quote-main p{font-size:19px;line-height:1.6}
  .cs-br-pc{display:none}  /* PCで3行にするための改行（原稿の改行ではない）はスマホでは使わない */
  .cs-annot-label{white-space:normal;word-break:keep-all;max-width:calc(100% - var(--x) - 4px)}
}
