/* 見本 (b) あかりとり工務店「窓と木」: 白い紙に藍一色。写真を窓の桟で区切る見せ方を全ページで繰り返す。
   書体は Zen Kaku Gothic New だけ（見出し700・本文400）で、太さと大きさの差で組む */
:root{--paper:#f3f3ef;--paper2:#e9e9e3;--ink:#1f2327;--mute:#5f656b;--ai:#2d4658;--line:#d6d6cf;
  --g:'Zen Kaku Gothic New',system-ui,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/2 var(--g);letter-spacing:.04em}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px}

/* ヘッダー */
.hd{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 40px}
.logo{font:700 20px/1.3 var(--g);letter-spacing:.14em;text-decoration:none}
.logo small{display:block;font-size:11px;font-weight:400;letter-spacing:.24em;color:var(--mute)}
.nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:500}
.nav a{text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-bottom-color:var(--ink)}
.nav .cta{background:var(--ai);color:#fff;padding:12px 18px;border-radius:2px;border:0}
.nav .cta:hover{background:#243a4a}

/* 窓の桟: 写真の上に紙色の縦横の桟を1本ずつ重ねる。読み込み時に桟が伸びる */
.win{position:relative;overflow:hidden;background:var(--paper2)}
.win img{width:100%;height:100%;object-fit:cover}
.win::before,.win::after{content:"";position:absolute;background:var(--paper);z-index:1}
.win::before{top:0;bottom:0;left:calc(50% - 5px);width:10px}
.win::after{left:0;right:0;top:calc(58% - 5px);height:10px}
.win--thin::before{left:calc(62% - 3px);width:6px}
.win--thin::after{top:calc(40% - 3px);height:6px}

/* 見出しと本文 */
.sec{padding:clamp(80px,10vw,136px) 0}
.sec--alt{background:var(--paper2)}
/* 見出しは文節の切れ目で改行する（Chrome/Edge。未対応のブラウザは通常の改行） */
h1,h2,h3{font-weight:700;letter-spacing:.06em;word-break:auto-phrase}
.h2{font-size:clamp(28px,3.4vw,40px);line-height:1.45;margin:0 0 24px}
.lead{font-size:17px;line-height:2.1;max-width:34em}
.note{font-size:13px;color:var(--mute)}
.more{display:inline-block;margin-top:24px;font-weight:700;text-decoration:none;border-bottom:2px solid var(--ai);padding-bottom:2px}
.btn{display:inline-block;background:var(--ai);color:#fff;text-decoration:none;font-weight:700;letter-spacing:.1em;padding:18px 28px;border-radius:2px}
.btn:hover{background:#243a4a}
.btn:focus-visible,.nav a:focus-visible,.more:focus-visible{outline:2px solid var(--ai);outline-offset:4px}

/* 下層ページの見出し */
.ph{padding:clamp(56px,8vw,104px) 0 clamp(40px,5vw,64px);border-bottom:1px solid var(--line)}
.ph h1{font-size:clamp(34px,4.6vw,56px);line-height:1.35;margin:0}
.ph p{margin:16px 0 0;max-width:36em;color:var(--mute)}

/* 表 */
dl.tbl{display:grid;grid-template-columns:9em minmax(0,1fr);margin:0;border-top:1px solid var(--line)}
.tbl dt,.tbl dd{margin:0;padding:16px 0;border-bottom:1px solid var(--line)}
.tbl dt{color:var(--mute);font-size:14px}

/* フッター */
.ft{background:var(--ink);color:#e9e9e3;padding:56px 0 48px;font-size:14px}
.ft__in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px 48px}
.ft a{color:#e9e9e3;text-decoration:none}
.ft nav{display:flex;flex-wrap:wrap;gap:8px 24px}
.ft p{margin:0}
.ft small{display:block;margin-top:32px;color:#9aa0a6;font-size:12px}

@media (prefers-reduced-motion:no-preference){
  .win--load img{animation:kIn 1.6s cubic-bezier(.2,.7,.2,1) both}
  .win--load::before{animation:kBarY 1.1s .5s cubic-bezier(.7,0,.2,1) both;transform-origin:top}
  .win--load::after{animation:kBarX 1.1s .8s cubic-bezier(.7,0,.2,1) both;transform-origin:left}
}
@keyframes kIn{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:none}}
@keyframes kBarY{from{transform:scaleY(0)}to{transform:none}}
@keyframes kBarX{from{transform:scaleX(0)}to{transform:none}}

@media (max-width:860px){
  .wrap{padding:0 16px}
  .hd{flex-wrap:wrap;padding:16px;gap:10px}
  .nav{width:100%;flex-wrap:wrap;gap:6px 18px;font-size:13px}
  .nav .cta{padding:8px 12px}
  .win::before{left:calc(50% - 3px);width:6px}
  .win::after{top:calc(58% - 3px);height:6px}
  dl.tbl{grid-template-columns:6.5em minmax(0,1fr)}
}
