@charset "utf-8";
/* ============================================================
   型9「町の写真店・カメラ店」／方向B 写真主役の白ギャラリー型
   2026-08-15 新規。既存デモ（紺ベースの雛形）からの流用はしていない。
   人物を写さない素材だけで成立させるため、「作例」ではなく
   「写真館という場所」を大きく見せる構成にしている。
   ============================================================ */

:root{
  --ink:#1b1a18;        /* 本文 */
  --ink-soft:#514c46;   /* 補助テキスト。本文には使わない */
  --paper:#ffffff;
  --paper-2:#faf8f5;    /* 薄い生成り。セクションの色替え用 */
  --line:#e4ded6;
  --accent:#8a6a3f;     /* 金茶。線と小さな文字だけに使う */
  --accent-d:#6d5230;
  --maxw:1120px;
  --gut:22px;
}

*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100% }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Noto Sans JP",system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:16px; line-height:1.9; letter-spacing:.02em;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:"Noto Serif JP",serif;font-weight:500;line-height:1.5;margin:0;letter-spacing:.04em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:760px}

/* ---------------- header ---------------- */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.header-in{max-width:var(--maxw);margin:0 auto;padding:11px var(--gut);display:flex;align-items:center;gap:16px}
.brand{display:block;text-decoration:none;line-height:1.35;flex:1 1 auto;min-width:0}
.brand b{display:block;font-family:"Noto Serif JP",serif;font-size:1.06rem;font-weight:600;letter-spacing:.07em}
.brand small{display:block;font-size:.75rem;color:var(--ink-soft);letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gnav ul{display:flex;gap:22px}
.gnav a{text-decoration:none;font-size:.87rem;letter-spacing:.06em;padding:6px 0;border-bottom:1px solid transparent}
.gnav a:hover,.gnav a[aria-current="page"]{border-bottom-color:var(--accent)}
.head-act{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.tel{display:block;text-decoration:none;text-align:right;line-height:1.3}
.tel .n{display:block;font-size:1.02rem;font-weight:700;letter-spacing:.04em}
.tel .h{display:block;font-size:.75rem;color:var(--ink-soft)}
/* KB-002 / KB-014: ハンバーガーは header-act の中に置き、
   幅320pxでも画面内に必ず残るよう flex:0 0 auto と固定幅で確保する */
.navbtn{display:none;flex:0 0 auto;width:42px;height:40px;padding:9px;border:1px solid var(--line);background:#fff;border-radius:3px;cursor:pointer}
.navbtn span{display:block;height:1.5px;background:var(--ink);margin:5px 0}

/* ---------------- demo bar ---------------- */
.demobar{background:var(--accent-d);color:#fff;font-size:.8rem;line-height:1.7}
.demobar .wrap{padding-top:9px;padding-bottom:9px;display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}
.demobar a{color:#fff}

/* ---------------- hero ----------------
   KB-001 回避：画像の上に文字を絶対配置しない。
   画像と文字を上下に分けるのが、この方向（白ギャラリー）の型そのもの。 */
.hero{padding:0 0 4px}
.hero-img{width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--paper-2)}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-copy{max-width:var(--maxw);margin:0 auto;padding:38px var(--gut) 10px}
.hero-copy .eyebrow{font-size:.76rem;letter-spacing:.22em;color:var(--accent);margin-bottom:16px}
.hero-copy h1{font-size:clamp(1.5rem,4.4vw,2.35rem);line-height:1.65}
.hero-copy .lead{margin-top:20px;max-width:46em;color:var(--ink)}

.btnrow{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{display:inline-block;text-decoration:none;font-size:.92rem;letter-spacing:.06em;padding:13px 26px;border:1px solid var(--ink);background:var(--ink);color:#fff}
.btn.ghost{background:transparent;color:var(--ink)}
.btn:hover{opacity:.85}

/* ---------------- section ---------------- */
section{padding:64px 0}
section.tint{background:var(--paper-2)}
.sec-head{margin-bottom:34px}
.sec-head .en{display:block;font-size:.75rem;letter-spacing:.24em;color:var(--accent);margin-bottom:10px}
.sec-head h2{font-size:clamp(1.28rem,3.2vw,1.72rem)}
.sec-head p{margin-top:14px;max-width:44em}

/* 用途グリッド */
.uses{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.uses li{background:#fff;padding:24px 20px}
.uses h3{font-size:1.02rem}
.uses p{margin-top:9px;font-size:.9rem;color:var(--ink-soft);line-height:1.85}
.uses .when{margin-top:12px;font-size:.76rem;letter-spacing:.08em;color:var(--accent)}

/* 2枚組の画像 */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
.duo figure{margin:0}
.duo img{width:100%;aspect-ratio:3/4;object-fit:cover}
.duo figcaption{margin-top:10px;font-size:.78rem;color:var(--ink-soft)}

/* 縦積みの説明ブロック */
.rows{display:grid;gap:26px}
.row{display:grid;grid-template-columns:88px 1fr;gap:20px;align-items:start}
.row .no{font-family:"Noto Serif JP",serif;font-size:1.5rem;color:var(--accent);line-height:1.2;border-top:1px solid var(--accent);padding-top:10px}
.row h3{font-size:1.02rem}
.row p{margin-top:8px;font-size:.94rem}

/* 表：KB-013。角丸のクリップと横スクロールを同じ箱に持たせ、
   内側に overflow:hidden の箱を作らない */
.tbl{border:1px solid var(--line);overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.tbl table{border-collapse:collapse;width:100%;min-width:520px;font-size:.92rem}
.tbl th,.tbl td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{background:var(--paper-2);font-weight:600;white-space:nowrap}
.tbl tr:last-child th,.tbl tr:last-child td{border-bottom:0}

/* 注記 */
.note{border-left:2px solid var(--accent);padding:14px 0 14px 18px;font-size:.9rem;line-height:1.9;background:transparent}
.note b{font-weight:700}

/* 情報バー */
.infobar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.infobar dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0}
.infobar dl>div{padding:24px 20px;border-left:1px solid var(--line)}
.infobar dl>div:first-child{border-left:0}
.infobar dt{font-size:.75rem;letter-spacing:.14em;color:var(--accent)}
.infobar dd{margin:8px 0 0;font-size:.98rem;line-height:1.75}
.infobar dd small{display:block;font-size:.75rem;color:var(--ink-soft);margin-top:5px}

/* CTA */
.cta{background:var(--ink);color:#fff;padding:62px 0}
.cta h2{color:#fff;font-size:clamp(1.2rem,3vw,1.6rem)}
.cta p{margin-top:16px;color:#e6e0d8}
.cta .btn{background:#fff;color:var(--ink);border-color:#fff;margin-top:26px}
.cta .tel-big{display:inline-block;margin-top:22px;font-size:1.5rem;font-weight:700;letter-spacing:.05em;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.5)}

/* フッター */
.footer{padding:46px 0 60px;font-size:.86rem;color:var(--ink-soft);border-top:1px solid var(--line)}
.footer b{display:block;font-family:"Noto Serif JP",serif;font-size:1rem;color:var(--ink);margin-bottom:10px}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr;gap:30px}
.footer nav a{display:inline-block;margin:0 18px 8px 0;text-decoration:none}
.copy{margin-top:28px;font-size:.75rem}

/* ページ見出し（下層） */
.phead{border-bottom:1px solid var(--line);padding:44px 0 38px}
.phead .en{display:block;font-size:.75rem;letter-spacing:.24em;color:var(--accent);margin-bottom:10px}
.phead h1{font-size:clamp(1.35rem,3.6vw,1.95rem)}
.phead p{margin-top:14px;max-width:46em}

/* ---------------- responsive ---------------- */
@media (max-width:900px){
  .uses{grid-template-columns:repeat(2,1fr)}
  .infobar dl{grid-template-columns:repeat(2,1fr)}
  .infobar dl>div:nth-child(3){border-left:0}
  .infobar dl>div:nth-child(n+3){border-top:1px solid var(--line)}
  .footer .cols{grid-template-columns:1fr}
}
@media (max-width:820px){
  /* KB-002 / KB-011：ドロワーは position:fixed で、ヘッダーの直下から全幅で開く。
     スクロール位置に関係なく同じ矩形になる（絶対配置にすると途中スクロールで潰れる） */
  .gnav{position:fixed;left:0;right:0;top:62px;display:none;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 26px rgba(27,26,24,.09);max-height:calc(100vh - 62px);overflow:auto}
  .gnav.open{display:block}
  .gnav ul{display:block;padding:6px var(--gut) 14px}
  .gnav li{border-top:1px solid var(--line)}
  .gnav li:first-child{border-top:0}
  .gnav a{display:block;padding:15px 2px;font-size:.98rem}
  .navbtn{display:block}
  .tel{display:none}
}
@media (max-width:560px){
  section{padding:48px 0}
  .hero-img{aspect-ratio:4/3}
  .hero-copy{padding-top:30px}
  .uses{grid-template-columns:1fr}
  .duo{grid-template-columns:1fr}
  .duo img{aspect-ratio:4/3}
  .row{grid-template-columns:1fr;gap:8px}
  .row .no{border-top:0;padding-top:0;font-size:1.15rem}
  .infobar dl{grid-template-columns:1fr}
  .infobar dl>div{border-left:0;border-top:1px solid var(--line)}
  .infobar dl>div:first-child{border-top:0}
}
@media (max-width:360px){
  :root{--gut:15px}
  .brand b{font-size:.98rem}
  .brand small{font-size:.75rem}
}
