:root{
    /* ジャパンディ｜生成りの地に、日本の青。朱赤は「あいだ」だけに使う */
    --paper:#F4F2ED;         /* 生成り（地色） */
    --sand:#E6E8E6;          /* 白鼠（面の切り替え） */
    --ink:#2C3238;           /* 藍がかった墨 */
    --ink-soft:#6C737A;      /* 本文のやわらかい方 */
    --accent:#5C7186;        /* 藍鼠（主たる差し色） */
    --accent-d:#3E5A6E;      /* 縹（はなだ） */
    --sub:#8E99A0;           /* 青鼠（引く文字） */
    --sub-d:#5C7186;
    --mist:#B9C7CE;          /* 甕覗き（かめのぞき） */
    --shu:#E5563B;           /* 朱赤。「あいだ」以外に使わないこと */
    --line:#D9DCD8;
    --card:#FFFFFF;
    --shadow:0 2px 16px rgba(44,50,56,.05);
    --radius:12px;
    --side:280px;
  }

  /* ------------------------------------------------------------------
     【元の配色（2026年7月まで）】戻したいときは :root の値をこれに置換
     --paper:#FFFFFF;  --ink:#262420;   --ink-soft:#6E6A63;
     --accent:#E5563B; --accent-d:#C8442B;
     --sub:#5C7186;    --sub-d:#465A6C;
     --line:#E7E4DD;   --shadow:0 2px 16px rgba(38,36,32,.06);
     ※あわせて以下も元に戻すこと
       .hand-underline{color:inherit;}／その ::after の background:var(--accent);
       .hero-copy .ac{color:#FFC9BD;}
       .about-hero .intro .lead-q .ac{color:var(--accent);}
     ------------------------------------------------------------------ */

  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    background:var(--paper);color:var(--ink);
    font-family:"Noto Sans JP",sans-serif;font-weight:400;
    line-height:1.85;letter-spacing:.02em;
    -webkit-font-smoothing:antialiased;
  }
  .zen{font-family:"Zen Kaku Gothic New",sans-serif;}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}

  /* ===== layout ===== */
  .shell{display:flex;align-items:flex-start;}
  /* ---- sidebar ---- */
  .side{
    width:var(--side);flex:0 0 var(--side);
    position:sticky;top:0;height:100vh;
    padding:26px 22px;display:flex;flex-direction:column;gap:18px;
    overflow-y:auto;
  }
  .logo{
    border:1.5px solid var(--ink);border-radius:var(--radius);
    padding:14px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  }
  .logo .mark{
    font-family:"Zen Kaku Gothic New";font-weight:900;font-size:1.38rem;
    line-height:1.2;letter-spacing:.08em;
  }
  .logo .sub{
    font-size:.62rem;letter-spacing:.04em;color:var(--ink-soft);line-height:1.6;
    padding-top:2px;width:100%;white-space:nowrap;
  }
  /* 屋号のみのロゴ（未使用・区切り線を消す） */
  .logo-solo .sub{border-top:none;padding-top:0;}
  .navlist{display:flex;flex-direction:column;}
  .navlist a{
    display:flex;align-items:center;gap:14px;
    padding:16px 8px 16px 16px;position:relative;
    border-bottom:1px solid var(--line);transition:padding .3s;
  }
  .navlist a:first-child{border-top:1px solid var(--line);}
  /* left accent bar grows on hover */
  .navlist a::before{
    content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:3px;height:0;background:var(--accent);transition:height .3s ease;border-radius:2px;
  }
  .navlist a:hover::before{height:60%;}
  .navlist a:hover{padding-left:22px;}
  .navlist .txt{flex:1 1 auto;}
  .navlist .en{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:1.12rem;letter-spacing:.06em;display:block;line-height:1.1;transition:color .3s;}
  .navlist a:hover .en{color:var(--accent);}
  .navlist .ja{font-size:.66rem;color:var(--ink-soft);display:block;margin-top:3px;letter-spacing:.12em;}
  .navlist .arr{font-size:.8rem;color:var(--line);transition:color .3s,transform .3s;flex:0 0 auto;}
  .navlist a:hover .arr{color:var(--accent);transform:translateX(3px);}
  .side-cta{
    border:1.5px solid var(--ink);border-radius:999px;
    padding:15px 20px;display:flex;align-items:center;justify-content:center;gap:12px;
    font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.9rem;letter-spacing:.06em;
    transition:background .3s,color .3s;margin-top:18px;
  }
  .side-cta:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
  .side-cta .arr{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;border:none;display:grid;place-items:center;font-size:.72rem;transition:background .3s;}
  .side-cta:hover .arr{background:#fff;color:var(--accent);}




  /* ---- main ---- */
  .main{flex:1 1 auto;min-width:0;padding:26px 34px 60px 8px;}

  /* hero — mosaic of photos */
  /* ===== ヒーロー：写真がゆっくり入れ替わる一枚見せ ===== */
  .hero{position:relative;height:min(76vh,660px);min-height:420px;overflow:hidden;
    border-radius:var(--radius);margin-bottom:26px;background:var(--sand);}
  .hero .slide{position:absolute;inset:0;opacity:0;animation:heroFade 16.5s infinite;}
  .hero .slide:nth-child(2){animation-delay:5.5s;}
  .hero .slide:nth-child(3){animation-delay:11s;}
  .hero .slide img{width:100%;height:100%;object-fit:cover;animation:heroDrift 16.5s ease-in-out infinite;}
  @keyframes heroFade{0%{opacity:0;}7%{opacity:1;}31%{opacity:1;}40%{opacity:0;}100%{opacity:0;}}
  @keyframes heroDrift{0%{transform:scale(1.02);}100%{transform:scale(1.1);}}
  .hero .veil{position:absolute;inset:0;
    background:linear-gradient(100deg,
      rgba(244,242,237,.95) 0%,
      rgba(244,242,237,.82) 40%,
      rgba(244,242,237,.24) 100%);}
  .hero-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
    justify-content:center;padding:0 6vw;max-width:none;color:var(--ink);}
  .hero-copy h1{font-family:"Zen Kaku Gothic New";font-weight:700;
    font-size:clamp(1.5rem,4vw,2.9rem);line-height:1.9;letter-spacing:.09em;text-shadow:none;}
  .hero-copy h1 .ln{display:block;overflow:hidden;}
  .hero-copy h1 .ln>span{display:block;transform:translateY(110%);
    animation:heroRise 1.3s cubic-bezier(.16,1,.3,1) forwards;}
  .hero-copy h1 .ln:nth-child(2)>span{animation-delay:.17s;}
  @keyframes heroRise{to{transform:none;}}
  .hero-copy .ac{color:var(--shu);}
  .hero-sub{margin-top:26px;font-size:.76rem;letter-spacing:.26em;color:var(--accent);
    opacity:0;animation:heroFadeIn 1.6s ease 1.1s forwards;}
  @keyframes heroFadeIn{to{opacity:1;}}
  .hero-scroll{position:absolute;left:6vw;bottom:30px;z-index:2;
    font-size:.64rem;letter-spacing:.3em;color:var(--accent);display:flex;align-items:center;gap:14px;}
  .hero-scroll::after{content:"";width:1px;height:44px;
    background:linear-gradient(var(--accent),transparent);animation:heroDrip 2.2s ease-in-out infinite;}
  @keyframes heroDrip{
    0%{transform:scaleY(0);transform-origin:top;}
    48%{transform:scaleY(1);transform-origin:top;}
    50%{transform:scaleY(1);transform-origin:bottom;}
    100%{transform:scaleY(0);transform-origin:bottom;}}
  @media(max-width:560px){
    .hero{height:min(66vh,520px);}
    .hero-copy{padding:0 26px;}
    .hero-scroll{left:26px;}
  }
  @media(prefers-reduced-motion:reduce){
    .hero .slide{opacity:1;animation:none;}
    .hero .slide:nth-child(2),.hero .slide:nth-child(3){display:none;}
    .hero .slide img{animation:none;}
    .hero-copy h1 .ln>span{transform:none;animation:none;}
    .hero-sub{opacity:1;animation:none;}
    .hero-scroll::after{animation:none;}
  }

  /* ===== CONCEPT ===== */
  .concept{margin:46px 0 10px;}
  .concept .jp-tagline{
    font-family:"Zen Kaku Gothic New";font-weight:900;
    font-size:clamp(1.8rem,4.4vw,3rem);line-height:1.4;letter-spacing:.04em;
    color:var(--ink);
  }
  .concept .jp-tagline .ac{color:var(--accent);}
  .concept .lead{
    font-family:"Zen Kaku Gothic New";font-weight:700;
    font-size:clamp(1.15rem,2.4vw,1.55rem);line-height:1.95;letter-spacing:.05em;
    margin-top:30px;max-width:24em;
  }
  .concept .lead .ac{color:var(--accent-d);}
  .concept .desc{font-size:.88rem;color:var(--ink-soft);line-height:2.3;margin-top:18px;max-width:42em;}

  /* section title */
  .stitle{margin:48px 2px 18px;}
  .stitle .row{display:flex;align-items:center;gap:14px;}
  /* 襠（マチ）マーク：あいだが開く2本の縦線 */
  .machi-mark{
    display:inline-flex;align-items:center;justify-content:center;
    width:0;height:1.5em;position:relative;margin-right:0;
    transition:width .9s cubic-bezier(.22,1,.36,1), margin-right .9s cubic-bezier(.22,1,.36,1);
    vertical-align:middle;flex:0 0 auto;overflow:visible;
  }
  .machi-mark::before,.machi-mark::after{
    content:"";position:absolute;top:0;bottom:0;width:2px;
    background:var(--accent);border-radius:2px;
    left:50%;transform:translateX(-50%);
    transition:left .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1), height .9s ease;
  }
  /* reveal で開く：2本が左右に離れ、あいだ（余白）が生まれる */
  .stitle.in .machi-mark, .page-head.in .machi-mark, .block-head.in .machi-mark{width:18px;margin-right:14px;}
  .stitle.in .machi-mark::before, .page-head.in .machi-mark::before, .block-head.in .machi-mark::before{left:0;transform:translateX(0);}
  .stitle.in .machi-mark::after, .page-head.in .machi-mark::after, .block-head.in .machi-mark::after{left:100%;transform:translateX(-100%);}
  .stitle .ja-main{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.5rem,3.2vw,2.1rem);letter-spacing:.06em;line-height:1.2;}
  .stitle .badge{background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.1em;padding:5px 12px;border-radius:999px;white-space:nowrap;}
  /* 現在は未使用（見出し下のリード文を復活させる場合に使用）*/
.stitle .en{font-family:"Zen Kaku Gothic New";font-weight:500;font-size:.78rem;letter-spacing:.18em;color:var(--sub);margin-top:8px;}
  .stitle .ja{display:none;}

  /* service cards */
  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .svc{
    background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);
    padding:26px 24px;box-shadow:var(--shadow);transition:transform .3s,border-color .3s;
  }
  .svc:hover{transform:translateY(-4px);border-color:var(--accent);}
  .svc .no{font-family:"Noto Sans JP";font-weight:400;font-size:.6rem;color:#B0A996;letter-spacing:.18em;display:block;}
  .svc h3{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.22rem;letter-spacing:.03em;margin:14px 0 13px;line-height:1.55;}
  .svc p{font-size:.79rem;color:#77726A;line-height:2.1;}

  /* works grid (the signature: dense photo+text mosaic) */
  /* 上段2行は270px固定、下段(3行目)は内容に合わせる */
  .works-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:270px 270px auto;gap:12px;}
  .work{
    background:var(--card);border-radius:var(--radius);overflow:hidden;
    box-shadow:var(--shadow);transition:transform .3s;display:flex;flex-direction:column;
  }
  .work:hover{transform:translateY(-4px);}
  .work .ph{flex:1 1 auto;overflow:hidden;background:#EEEBE3;position:relative;min-height:0;}
  .work .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s;}
  .work:hover .ph img{transform:scale(1.05);}
  .work .ph.placeholder{display:grid;place-items:center;color:#B6B1A6;font-size:.72rem;letter-spacing:.1em;
    background:repeating-linear-gradient(45deg,#F4F2EC,#F4F2EC 12px,#EFEDE5 12px,#EFEDE5 24px);}
  /* corner label on photo, like reference site */
  .work .ph-label{
    position:absolute;left:12px;top:12px;z-index:2;
    background:#fff;border:1.5px solid var(--ink);
    font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.66rem;letter-spacing:.06em;
    padding:6px 11px;line-height:1.3;border-radius:8px;
  }
  .work .meta{padding:14px 16px 16px;flex:0 0 auto;}
  .work .tag{display:inline-block;background:#FBEEEA;color:var(--accent-d);font-size:.62rem;font-weight:700;letter-spacing:.06em;padding:3px 9px;border-radius:999px;margin-bottom:7px;}
  .work h3{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.96rem;line-height:1.5;letter-spacing:.03em;}
  .work .role{font-size:.72rem;color:var(--ink-soft);margin-top:4px;}
  /* mosaic spans */
  .work.big{grid-column:span 6;grid-row:span 2;}
  .work.sm{grid-column:span 3;}
  .work.wide{grid-column:span 6;}
  .work.tall{grid-column:span 3;grid-row:span 2;}
  .work.third{grid-column:span 4;grid-row:3;}
  /* 下段3枚：写真は取り組み一覧と同じ 3:2 に揃える */
  .work.third .ph{flex:0 0 auto;aspect-ratio:3/2;}
  .work.big h3{font-size:.96rem;}
  .more-row{margin:28px 0 0;display:flex;justify-content:center;}
  .more-link{
    position:relative;display:inline-flex;align-items:center;gap:16px;
    font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.96rem;letter-spacing:.04em;
    background:var(--card);border:1.5px solid var(--ink);border-radius:999px;
    padding:15px 24px 15px 32px;transition:background .3s,color .3s;
  }
  .more-link:hover{background:var(--ink);color:var(--paper);}
  /* round arrow, same as side-cta */
  .more-link .tab{
    width:24px;height:24px;border-radius:50%;
    border:none;background:var(--accent);
    display:grid;place-items:center;color:#fff;font-size:.62rem;
    transition:transform .3s,background .3s;flex:0 0 auto;
  }
  .more-link:hover .tab{transform:translateX(3px);background:#fff;color:var(--accent);}

  /* about */
  .about{
    display:grid;grid-template-columns:0.85fr 1.15fr;gap:18px;align-items:stretch;
    margin-top:14px;
  }
  .about .ph{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#EEEBE3;min-height:300px;}
  .about .ph.placeholder{display:grid;place-items:center;color:#B6B1A6;font-size:.74rem;letter-spacing:.1em;
    background:repeating-linear-gradient(45deg,#F2EFE8,#F2EFE8 12px,#EDEAE2 12px,#EDEAE2 24px);}
  .about .ph img{width:100%;height:100%;object-fit:cover;}
  .about .body{
    background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);
    padding:34px 36px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center;
  }
  .about .body h2{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.3rem,2.6vw,1.7rem);line-height:1.6;letter-spacing:.05em;margin-bottom:18px;}
  .about .body p{font-size:.86rem;color:var(--ink-soft);line-height:2.2;margin-bottom:22px;max-width:34em;}
  .about .name{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.05rem;letter-spacing:.1em;}
  .about .name small{display:block;font-weight:400;font-size:.66rem;color:var(--accent-d);letter-spacing:.2em;margin-top:5px;font-family:"Noto Sans JP";}

  /* contact */
  .contact{
    background:#7A736A;color:#fff;border-radius:var(--radius);
    padding:54px 44px;margin-top:14px;text-align:center;position:relative;overflow:hidden;
  }
  .contact::before{content:"";position:absolute;top:-40%;right:-10%;width:300px;height:300px;border-radius:50%;background:var(--accent);opacity:.22;}
  .contact h2{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:.06em;line-height:1.6;margin-bottom:14px;position:relative;}
  .contact p{font-size:.84rem;color:#F4F2EF;max-width:32em;margin:0 auto 28px;line-height:2.1;position:relative;}
  .contact .btn{position:relative;display:inline-flex;align-items:center;gap:14px;background:var(--accent);color:#fff;font-weight:700;font-size:.88rem;padding:15px 34px;border-radius:999px;transition:background .3s,gap .3s;}
  .contact .btn:hover{background:var(--accent-d);gap:20px;}

  /* footer */
  footer{
    margin-top:40px;padding:46px 44px 40px;border-radius:var(--radius);
    background:#4A453F;color:#EDEAE3;
    display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;
  }
  footer .fl .fn{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:1.15rem;letter-spacing:.06em;color:#fff;}
  footer .fl .loc{font-size:.72rem;color:#A8A39A;margin-top:8px;}
  footer .fnav{display:flex;gap:22px;font-size:.78rem;color:#C8C3BA;}
  footer .fnav a{transition:color .3s;}
  footer .fnav a:hover{color:var(--accent);}
  footer .cp{font-size:.66rem;color:#8A857C;letter-spacing:.08em;}

  /* reveal */
  .rv{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease;}
  .rv.in{opacity:1;transform:none;}

  /* ===== mobile ===== */
  .mtop{display:none;}
  .menu-toggle{display:none;}
  @media(max-width:900px){
    .shell{flex-direction:column;}
    /* 1段目：ロゴのヘッダー（上部固定） */
    .side{
      position:sticky;top:0;z-index:100;
      width:100%;height:auto;min-height:0;max-height:none;flex:0 0 auto;
      flex-direction:row;align-items:center;justify-content:space-between;
      gap:12px;padding:8px 14px;
      background:rgba(255,255,255,.95);backdrop-filter:saturate(120%) blur(8px);
      border-bottom:1.5px solid var(--line);overflow:visible;
    }
    /* スマホ・タブレット：屋号の右にサブコピーを置く */
    .logo{flex:0 0 auto;flex-direction:row;align-items:center;padding:7px 13px;gap:9px;border-radius:var(--radius);text-align:left;}
    .logo .mark{font-size:1.16rem;white-space:nowrap;}
    .logo .sub{display:block;width:auto;font-size:.48rem;line-height:1.45;letter-spacing:.02em;padding-top:0;text-align:left;}
    .navlist{display:none;}
    /* お問い合わせはメニュー内に含めるのでヘッダーからは隠す */
    .side-cta{display:none;}
    .main{padding:0 16px 50px;width:100%;}
    .hero-mosaic{grid-template-columns:1fr;}
    .hero-right{grid-template-columns:1fr 1fr;grid-template-rows:none;}
    .hcell.lead-cell{aspect-ratio:4/3;}
    .hcell.r1,.hcell.r2{aspect-ratio:1/1;}
    .svc-grid{grid-template-columns:1fr;}
    .works-grid{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:auto;}
    .work{display:flex;flex-direction:column;}
    .work .ph{aspect-ratio:3/2;flex:0 0 auto;}
    .work.big,.work.wide,.work.tall,.work.sm,.work.third{grid-column:auto;grid-row:auto;}
    .work.big h3{font-size:1rem;}
    .about{grid-template-columns:1fr;}
    /* ロゴ右の三本線トグル（モバイルのみ表示） */
    .menu-toggle{
      display:flex;flex-direction:column;justify-content:center;gap:5px;
      width:44px;height:44px;flex:0 0 auto;padding:0 10px;
      background:none;border:none;cursor:pointer;border-radius:var(--radius);
    }
    .mt-line{display:block;height:2.5px;width:100%;background:var(--accent);border-radius:2px;
      transition:transform .35s cubic-bezier(.5,0,.2,1), opacity .25s, width .35s;}
    /* 開いたとき：上下が中央に寄って×、真ん中は「あいだ」に消える */
    .menu-toggle[aria-expanded="true"] .mt-line:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
    .menu-toggle[aria-expanded="true"] .mt-line:nth-child(2){opacity:0;width:0;margin:0 auto;}
    .menu-toggle[aria-expanded="true"] .mt-line:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
    /* 開閉式ドロップダウンメニュー（旧mtop） */
    .mtop{
      display:flex;flex-direction:column;gap:2px;
      position:fixed;top:59px;left:0;right:0;z-index:98;
      margin:0;padding:12px 16px 16px;
      background:rgba(255,255,255,.98);backdrop-filter:saturate(120%) blur(10px);
      border-bottom:1.5px solid var(--line);box-shadow:0 12px 24px rgba(0,0,0,.06);
      transform:translateY(-12px);opacity:0;pointer-events:none;
      transition:transform .3s cubic-bezier(.22,1,.36,1), opacity .3s;
    }
    .mtop.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
    .mtop a{
      font-size:.98rem;font-weight:700;font-family:"Zen Kaku Gothic New";
      padding:13px 8px;border-bottom:1px solid var(--line);color:var(--ink);
      display:flex;align-items:center;gap:12px;transition:color .2s,padding .2s;
    }
    /* メニュー項目：英語を主、日本語を添える（PCサイドバーと同じ組み方） */
    .mtop .txt{display:flex;flex-direction:column;gap:3px;}
    .mtop .en{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:1.02rem;letter-spacing:.06em;line-height:1.1;display:block;}
    .mtop .ja{font-size:.64rem;font-weight:400;color:var(--ink-soft);letter-spacing:.12em;line-height:1.1;display:block;}
    .mtop a[aria-current="page"] .ja{color:rgba(255,255,255,.82);}
    .mtop a:last-child{border-bottom:none;}
    .mtop a::before{content:"";width:14px;height:2px;background:var(--accent);border-radius:2px;transition:width .25s;flex:0 0 auto;}
    .mtop a:hover,.mtop a[aria-current="page"]{color:var(--accent);}
    .mtop a:hover::before,.mtop a[aria-current="page"]::before{width:22px;}
  }
  @media(max-width:560px){
    .works-grid{grid-template-columns:1fr;}
    /* 極端に狭い画面でも屋号とサブコピーが横に収まるように詰める */
    .logo{padding:6px 10px;gap:7px;}
    .logo .mark{font-size:1.06rem;}
    .logo .sub{font-size:.44rem;}
    .hero-copy{padding:24px 22px;}
    /* 狭い画面：お問い合わせはアイコンのみ、ロゴのサブは残す */
    .side-cta .cta-txt{display:none;}
    .side-cta{padding:9px;}
  }
/* ===== sub pages ===== */
.page-head{margin:14px 2px 36px;}
.page-head .crumb{font-size:.74rem;color:var(--ink-soft);letter-spacing:.08em;margin-bottom:18px;}
.page-head .crumb a:hover{color:var(--accent-d);}
.page-head .row{display:flex;align-items:center;gap:14px;}
.page-head .ja-main{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:.06em;line-height:1.2;}
.page-head .badge{background:var(--accent);color:#fff;font-size:.64rem;font-weight:700;letter-spacing:.1em;padding:5px 12px;border-radius:999px;white-space:nowrap;}
/* 現在は未使用（見出し下のリード文を復活させる場合に使用）*/
.page-head .en{font-family:"Zen Kaku Gothic New";font-weight:500;font-size:.8rem;letter-spacing:.18em;color:var(--sub);margin-top:12px;}
.page-head .desc{font-size:.9rem;color:var(--ink-soft);line-height:2.2;margin-top:20px;max-width:42em;}

/* works list (even grid) */
.works-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.wcard{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .3s,border-color .3s;display:flex;flex-direction:column;}
.wcard:hover{transform:translateY(-4px);border-color:var(--accent);}
.wcard .ph{aspect-ratio:3/2;overflow:hidden;background:#EEEBE3;position:relative;}
.wcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s;}
.wcard:hover .ph img{transform:scale(1.05);}
.wcard .ph.placeholder{display:grid;place-items:center;color:#B6B1A6;font-size:.72rem;letter-spacing:.1em;
  background:repeating-linear-gradient(45deg,#F4F2EC,#F4F2EC 12px,#EFEDE5 12px,#EFEDE5 24px);}
.wcard .meta{padding:20px 20px 24px;display:flex;flex-direction:column;flex:1 1 auto;}
.wcard .tag{display:inline-block;align-self:flex-start;background:#FBEEEA;color:var(--accent-d);font-size:.64rem;font-weight:700;letter-spacing:.06em;padding:4px 11px;border-radius:999px;margin-bottom:12px;}
.wcard h3{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.12rem;line-height:1.5;letter-spacing:.03em;}
.wcard .role{font-size:.76rem;color:var(--sub);margin-top:6px;font-weight:500;}
.wcard .note{font-size:.82rem;color:var(--ink-soft);line-height:2;margin-top:14px;}

@media(max-width:900px){
  .works-list{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .works-list{grid-template-columns:1fr;}
}

/* current page in nav */
.navlist a[aria-current="page"]{position:relative;}
.navlist a[aria-current="page"]::before{height:60%;}
.navlist a[aria-current="page"] .en{color:var(--accent);}
.mtop a[aria-current="page"]{background:var(--accent);color:#fff;border-color:var(--accent);}

/* ===== about page ===== */
.about-hero{display:grid;grid-template-columns:0.85fr 1.15fr;gap:24px;align-items:stretch;margin-bottom:24px;}
.about-hero.no-photo{grid-template-columns:1fr;}
.about-hero .ph{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#EEEBE3;min-height:360px;}
.about-hero .ph.placeholder{display:grid;place-items:center;color:#B6B1A6;font-size:.76rem;letter-spacing:.1em;
  background:repeating-linear-gradient(45deg,#F4F2EC,#F4F2EC 12px,#EFEDE5 12px,#EFEDE5 24px);}
.about-hero .ph img{width:100%;height:100%;object-fit:cover;}
.about-hero .intro{display:flex;flex-direction:column;justify-content:center;padding:8px 4px;}
.about-hero .intro .lead-q{color:var(--ink);font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.4rem,3vw,2rem);line-height:1.7;letter-spacing:.05em;margin-bottom:20px;}
.about-hero .intro .lead-q .ac{color:var(--shu);}
.about-hero .intro p{font-size:.9rem;color:var(--ink-soft);line-height:2.3;max-width:30em;}
.about-hero .intro p + p{margin-top:16px;}
.about-hero .intro .name{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.1rem;letter-spacing:.12em;margin-top:24px;}
.about-hero .intro .name small{display:block;font-family:"Noto Sans JP";font-weight:400;font-size:.68rem;color:var(--sub);letter-spacing:.2em;margin-top:0;line-height:1.35;}
.about-hero .intro .name{line-height:1.35;}

/* block heading inside page */
.block-head{margin:52px 2px 22px;}
.block-head .row{display:flex;align-items:center;gap:13px;}
.block-head .ja{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(1.3rem,2.6vw,1.7rem);letter-spacing:.05em;}
.block-head .badge{background:var(--accent);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.1em;padding:4px 11px;border-radius:999px;}

/* timeline */
.timeline{border-left:2px solid var(--line);margin-left:6px;padding-left:0;}
.timeline .item{position:relative;padding:0 0 26px 28px;}
.timeline .item::before{content:"";position:absolute;left:-7px;top:7px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--paper);}
.timeline .item:last-child{padding-bottom:0;}
.timeline .place{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1rem;letter-spacing:.03em;}
.timeline .txt{font-size:.86rem;color:var(--ink-soft);line-height:2;margin-top:5px;max-width:40em;}

/* company info table */
.info-table{border-top:1.5px solid var(--line);max-width:640px;}
.info-table .tr{display:grid;grid-template-columns:9rem 1fr;gap:18px;padding:15px 4px;border-bottom:1.5px solid var(--line);}
.info-table .th{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.82rem;letter-spacing:.06em;color:var(--ink);}
.info-table .td{font-size:.86rem;color:var(--ink-soft);line-height:1.9;}
.info-table .td.tbd{color:#B6B1A6;font-style:normal;}

@media(max-width:900px){
  .about-hero{grid-template-columns:1fr;}
  .about-hero .ph{min-height:260px;aspect-ratio:3/2;}
}
@media(max-width:560px){
  .info-table .tr{grid-template-columns:1fr;gap:4px;}
}

/* ===== contact page ===== */
.contact-wrap{display:grid;grid-template-columns:0.8fr 1.2fr;gap:40px;align-items:start;}
.contact-side .lead{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:clamp(1.1rem,2.4vw,1.4rem);line-height:1.9;letter-spacing:.05em;margin-bottom:20px;}
.contact-side p{font-size:.86rem;color:var(--ink-soft);line-height:2.2;max-width:26em;margin-bottom:24px;}
.contact-side .alt{border-top:1.5px solid var(--line);padding-top:20px;margin-top:4px;}
.contact-side .alt .k{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.74rem;letter-spacing:.08em;color:var(--ink);margin-bottom:6px;}
.contact-side .alt .v{font-size:.84rem;color:var(--ink-soft);margin-bottom:16px;}
.contact-side .alt .v.tbd{color:#B6B1A6;}

.form{display:flex;flex-direction:column;gap:22px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.84rem;letter-spacing:.04em;display:flex;align-items:center;gap:10px;}
.field .req{background:var(--accent);color:#fff;font-size:.58rem;font-weight:700;letter-spacing:.06em;padding:2px 8px;border-radius:999px;}
.field .opt{background:var(--paper-2,#F4F2EC);color:var(--ink-soft);font-size:.58rem;font-weight:700;letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1px solid var(--line);}
.field input,.field select,.field textarea{
  font-family:"Noto Sans JP",sans-serif;font-size:.9rem;color:var(--ink);
  background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);
  padding:13px 15px;transition:border-color .25s,box-shadow .25s;width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(229,86,59,.12);
}
.field textarea{resize:vertical;min-height:150px;line-height:1.9;}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E6A63' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;}
.form-note{font-size:.76rem;color:var(--ink-soft);line-height:1.9;}
.form-note a{color:var(--accent-d);text-decoration:underline;}
.submit-btn{
  align-self:flex-start;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.94rem;letter-spacing:.06em;
  background:var(--accent);color:#fff;border:none;border-radius:999px;padding:15px 44px;cursor:pointer;
  display:inline-flex;align-items:center;gap:12px;transition:background .3s,gap .3s;
}
.submit-btn:hover{background:var(--accent-d);gap:18px;}
.submit-btn:disabled{background:#CFCAC1;cursor:not-allowed;gap:12px;}
.submit-btn:disabled:hover{background:#CFCAC1;gap:12px;}
.cf-turnstile{margin:4px 0 4px;}

@media(max-width:900px){
  .contact-wrap{grid-template-columns:1fr;gap:28px;}
}

.side-cta[aria-current="page"]{background:var(--accent);color:#fff;border-color:var(--accent);}
.mtop a.side-cta[aria-current],.mtop a[aria-current="page"]{}

/* ===== news (home) ===== */
.news-list{display:flex;flex-direction:column;border-top:1.5px solid var(--line);}
.news-item{display:flex;align-items:center;gap:18px;padding:18px 6px;border-bottom:1.5px solid var(--line);position:relative;}
.news-item.is-link{transition:background .25s,padding .25s;cursor:pointer;}
.news-item.is-link:hover{background:#FBF6F4;padding-left:14px;}
.news-row .n-date,.news-item .news-head .news-date{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.78rem;color:var(--sub);letter-spacing:.06em;flex:0 0 auto;}
.news-row,.news-item{}
.news-row{display:flex;align-items:center;gap:18px;padding:18px 6px;border-bottom:1.5px solid var(--line);text-decoration:none;color:inherit;transition:background .25s,padding .25s;}
.news-row:hover{background:#FBF6F4;padding-left:14px;}
.news-row .n-date{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.78rem;color:var(--sub);letter-spacing:.06em;flex:0 0 auto;width:6.5em;}
/* 現在は非表示。カテゴリバッジを復活させる場合に使用 */
.news-row .n-cat{font-size:.64rem;font-weight:700;letter-spacing:.06em;color:var(--accent-d);background:#FBEEEA;padding:4px 11px;border-radius:999px;flex:0 0 auto;}
.news-row .n-title{font-size:.9rem;color:var(--ink);line-height:1.7;flex:1 1 auto;}
.news-row .n-arr{color:var(--accent);font-size:.85rem;flex:0 0 auto;transition:transform .25s;}
.news-row:hover .n-arr{transform:translateX(4px);}
.news-empty{color:var(--ink-soft);font-size:.88rem;padding:24px 6px;}

/* ===== news (list page) ===== */
.news-page-list{display:flex;flex-direction:column;gap:0;border-top:1.5px solid var(--line);}
.nl-item{padding:26px 6px;border-bottom:1.5px solid var(--line);}
.nl-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.nl-head .n-date{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.82rem;color:var(--sub);letter-spacing:.06em;}
/* 現在は非表示。カテゴリバッジを復活させる場合に使用 */
.nl-head .n-cat{font-size:.64rem;font-weight:700;letter-spacing:.06em;color:var(--accent-d);background:#FBEEEA;padding:4px 11px;border-radius:999px;}
.nl-title{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.12rem;line-height:1.6;letter-spacing:.03em;}
.nl-body{font-size:.86rem;color:var(--ink-soft);line-height:2.1;margin-top:10px;max-width:44em;}
.nl-link{display:inline-block;margin-top:14px;font-size:.82rem;font-weight:700;color:var(--accent-d);border-bottom:1.5px solid var(--accent);padding-bottom:3px;}
.nl-link:hover{color:var(--accent);}

@media(max-width:560px){
  .news-row{flex-wrap:wrap;gap:8px 12px;}
  .news-row .n-title{flex-basis:100%;}
}

.info-note{font-size:.68rem;color:#A8A39A;line-height:1.85;margin-top:16px;max-width:640px;}

.svc-note{font-size:.82rem;color:var(--ink-soft);margin-top:18px;letter-spacing:.02em;padding-left:2px;}

/* =====================================================================
   追加機能：実績モーダル・仕事の流れ（PROCESS）・カードのボタン化
   ===================================================================== */

/* 実績カードをボタン化したことによるリセット */
button.work, button.wcard{
  border:none;background:var(--card);text-align:left;cursor:pointer;
  font-family:inherit;color:inherit;width:100%;padding:0;
}
button.wcard{display:flex;flex-direction:column;overflow:hidden;
  border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  transition:transform .3s,border-color .3s;}
button.wcard:hover{transform:translateY(-4px);border-color:var(--accent);}
button.work{display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .3s;}
button.work:hover{transform:translateY(-4px);}

/* ---- 実績モーダル ---- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(38,36,32,.6);backdrop-filter:blur(4px);
  z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .4s ease;
}
.modal-overlay.is-active{opacity:1;pointer-events:auto;}
.modal-window{
  background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius);
  width:100%;max-width:660px;max-height:90vh;overflow-y:auto;position:relative;
  box-shadow:0 10px 40px rgba(0,0,0,.18);
  transform:translateY(20px);transition:transform .4s cubic-bezier(.25,1,.5,1);
}
.modal-overlay.is-active .modal-window{transform:translateY(0);}
.modal-close{
  position:absolute;top:14px;right:18px;background:none;border:none;
  font-size:1.9rem;line-height:1;color:var(--ink-soft);cursor:pointer;transition:color .2s;z-index:10;
}
.modal-close:hover{color:var(--accent);}
.modal-content{padding:40px 36px;}
.modal-tag{display:inline-block;background:#FBEEEA;color:var(--accent-d);font-size:.68rem;font-weight:700;letter-spacing:.06em;padding:4px 12px;border-radius:999px;margin-bottom:12px;}
.modal-content h3{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:1.5rem;line-height:1.4;margin-bottom:6px;letter-spacing:.03em;}
.modal-role{font-size:.8rem;color:var(--sub);font-weight:500;margin-bottom:24px;}
.modal-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;background:#EEEBE3;margin-bottom:28px;border:1px solid var(--line);}
.modal-img img{width:100%;height:100%;object-fit:cover;}
.modal-img.placeholder{display:grid;place-items:center;color:#B6B1A6;font-size:.8rem;letter-spacing:.1em;
  background:repeating-linear-gradient(45deg,#F4F2EC,#F4F2EC 12px,#EFEDE5 12px,#EFEDE5 24px);}
.modal-story{display:flex;flex-direction:column;gap:20px;border-top:1.5px solid var(--line);padding-top:24px;}
.story-block h4{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.9rem;color:var(--accent-d);margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.story-block h4::before{content:"";width:3px;height:1.2em;background:var(--accent);display:inline-block;border-radius:2px;}
.story-block p{font-size:.88rem;color:var(--ink-soft);line-height:2;}
.modal-note-fallback{font-size:.9rem;line-height:2;color:var(--ink-soft);}
.modal-action{margin-top:32px;text-align:center;border-top:1px solid var(--line);padding-top:24px;}
.modal-cta-btn{display:inline-block;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.88rem;background:var(--ink);color:var(--paper);padding:14px 28px;border-radius:999px;transition:background .3s,transform .2s;}
.modal-cta-btn:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}

/* ---- 仕事の流れ（PROCESS） ---- */
.process-wrap{display:flex;flex-direction:column;gap:0;position:relative;margin-top:24px;}
.process-wrap::before{content:"";position:absolute;left:24px;top:20px;bottom:20px;width:2px;background:var(--line);z-index:1;}
.process-item{display:flex;gap:24px;position:relative;z-index:2;padding-bottom:28px;}
.process-item:last-child{padding-bottom:0;}
.p-num-wrap{flex:0 0 50px;height:50px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);display:grid;place-items:center;box-shadow:var(--shadow);transition:background .3s,border-color .3s;}
.p-num{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:.6rem;color:var(--accent-d);letter-spacing:.04em;transition:color .3s;}
.process-item:hover .p-num-wrap{background:var(--accent);border-color:var(--accent);}
.process-item:hover .p-num{color:#fff;}
.p-text{flex:1;background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow);transition:border-color .3s,transform .3s;}
.process-item:hover .p-text{border-color:var(--ink);transform:translateX(4px);}
.p-text h3{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.05rem;margin-bottom:8px;color:var(--ink);letter-spacing:.03em;}
.p-text p{font-size:.84rem;color:var(--ink-soft);line-height:1.95;}

@media(max-width:600px){
  .modal-content{padding:32px 20px;}
  .modal-content h3{font-size:1.3rem;}
  .process-wrap::before{left:18px;}
  .p-num-wrap{flex:0 0 38px;height:38px;}
  .p-num{font-size:.5rem;}
  .process-item{gap:14px;}
  .p-text{padding:16px 18px;}
}

/* 下線（ヒーローの「あいだ」など） */
.hand-underline{
  position:relative;
  color:var(--shu);
  white-space:nowrap;
  padding:0 .04em;
}
.hand-underline::after{
  content:"";
  position:absolute;
  left:0;right:0;
  bottom:-.1em;
  height:3px;
  background:var(--shu);
  border-radius:2px;
  pointer-events:none;
}

/* モーダル内の写真スライド（カルーセル） */
.modal-carousel{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;background:#EEEBE3;margin-bottom:28px;border:1px solid var(--line);}
.carousel-track{width:100%;height:100%;position:relative;}
.carousel-slide{position:absolute;inset:0;opacity:0;transition:opacity .4s ease;}
.carousel-slide.is-active{opacity:1;}
.carousel-slide img{width:100%;height:100%;object-fit:cover;}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.9);color:var(--ink);font-size:1.3rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s;box-shadow:0 2px 8px rgba(0,0,0,.12);z-index:2;}
.carousel-arrow:hover{background:#fff;}
.carousel-arrow.prev{left:12px;}
.carousel-arrow.next{right:12px;}
.carousel-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:7px;z-index:2;}
.carousel-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.6);cursor:pointer;padding:0;transition:background .2s,transform .2s;}
.carousel-dot.is-active{background:var(--accent);transform:scale(1.2);}

/* フッターのSNS・サイトリンク */
.sns-links{display:flex;gap:10px;margin-top:16px;}
.sns-icon{
  width:38px;height:38px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.35);color:#EDEAE3;
  display:grid;place-items:center;
  transition:background .25s,border-color .25s,color .25s,transform .2s;
}
.sns-icon:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);}

/* モーダル内のSNSアイコン（明るい背景用） */
.modal-sns{justify-content:center;margin-top:18px;}
.modal-links-wrap{margin-top:24px;text-align:center;}
.modal-links-label{font-size:.78rem;color:var(--ink-soft);letter-spacing:.08em;margin-bottom:2px;}
.modal-links-wrap .modal-sns{margin-top:8px;}
.modal-sns .sns-icon{border-color:var(--line);color:var(--ink-soft);}
.modal-sns .sns-icon:hover{background:var(--accent);border-color:var(--accent);color:#fff;}

/* ===== まちの風景ギャラリー ===== */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:200px;
  grid-auto-flow:dense;
  gap:28px;
  margin-top:24px;
}
.g-item{
  position:relative;overflow:hidden;border-radius:var(--radius);
  margin:0;background:#EEEBE3;box-shadow:var(--shadow);
}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1);}
.g-item:hover img{transform:scale(1.06);}
.g-cap{
  position:absolute;left:0;right:0;bottom:0;
  padding:22px 14px 12px;color:#fff;font-size:.78rem;font-weight:500;letter-spacing:.03em;
  background:linear-gradient(to top, rgba(30,28,25,.72), transparent);
  opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;
}
.g-item:hover .g-cap{opacity:1;transform:translateY(0);}
/* サイズバリエーション：横長は使わず、正方形・縦長・大の3種 */
.g-item.g-s{grid-column:span 1;grid-row:span 1;}   /* 正方形 */
.g-item.g-t{grid-column:span 1;grid-row:span 2;}   /* 縦長 */
.g-item.g-l{grid-column:span 2;grid-row:span 2;}   /* 大きめ正方形 */
@media(max-width:900px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;gap:18px;}
  .g-item.g-l{grid-column:span 2;grid-row:span 2;}
  .g-cap{opacity:1;transform:none;font-size:.72rem;}
}
@media(max-width:560px){
  .gallery-grid{gap:14px;grid-auto-rows:150px;}
  .g-item.g-l{grid-column:span 2;}
}

/* ---------- 法務ページ（プライバシーポリシー・利用規約） ---------- */
.legal{max-width:760px;margin-top:8px;}
.legal .legal-lead{font-size:.95rem;color:var(--ink-soft);line-height:1.9;margin-bottom:36px;}
.legal section{margin-bottom:34px;}
.legal h2{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.12rem;letter-spacing:.03em;color:var(--ink);margin-bottom:12px;padding-left:14px;border-left:3px solid var(--accent);}
.legal h3{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.98rem;color:var(--sub-d);margin:18px 0 8px;}
.legal p{font-size:.92rem;line-height:1.95;color:var(--ink);margin-bottom:12px;}
.legal ul,.legal ol{margin:8px 0 14px 1.4em;}
.legal li{font-size:.92rem;line-height:1.9;margin-bottom:6px;}
.legal .legal-date{font-size:.86rem;color:var(--ink-soft);margin-top:40px;padding-top:20px;border-top:1px solid var(--line);}
.legal a{color:var(--sub);text-decoration:underline;text-underline-offset:2px;}
.legal a:hover{color:var(--accent);}

/* PC・タブレットでのみ効く改行。狭い画面では無効にして自然に折り返す */
.br-pc{display:inline;}
@media(max-width:700px){.br-pc{display:none;}}


/* ===== ジャパンディ移植｜番号・ラベルの罫・四角のしるし ===== */
.snum{
  font-family:"Zen Kaku Gothic New";font-weight:400;
  font-size:clamp(2rem,4.2vw,3rem);line-height:.95;letter-spacing:.05em;
  color:var(--mist);margin-bottom:16px;
}
.snum.b{color:var(--sub);}
/* 見出しの右へ細く伸びる罫 */
.stitle .row::after,.page-head .row::after{
  content:"";flex:1;min-width:40px;height:1px;background:var(--line);
}
/* リンクの頭に置く四角。ホバーでひし形になる */
.sq{
  display:inline-block;width:11px;height:11px;background:var(--accent);
  flex:0 0 auto;transition:transform .45s cubic-bezier(.16,1,.3,1);
}
a:hover .sq,button:hover .sq{transform:rotate(45deg);}

/* ===== 行ごとにせり上がる本文 ===== */
.lift .ln{overflow:hidden;}
.lift .ln>span{display:block;transform:translateY(105%);transition:transform 1.05s cubic-bezier(.16,1,.3,1);}
.lift.in .ln>span{transform:none;}
.lift .ln:nth-child(2)>span{transition-delay:.1s;}
.lift .ln:nth-child(3)>span{transition-delay:.2s;}
.lift .ln:nth-child(4)>span{transition-delay:.3s;}
.lift .ln:nth-child(5)>span{transition-delay:.4s;}
@media(prefers-reduced-motion:reduce){
  .lift .ln>span{transform:none!important;}
}

/* リンクの頭に置く四角（既存のリンクに後付け） */
.more-link::before,.about .more::before{
  content:"";display:inline-block;width:11px;height:11px;background:var(--accent);
  margin-right:12px;vertical-align:middle;
  transition:transform .45s cubic-bezier(.16,1,.3,1);
}
.more-link:hover::before,.about .more:hover::before{transform:rotate(45deg);}


/* ===== 考えごと（ブログ） ===== */
.blog-list{max-width:44em;}
.bl-item{padding:38px 0;border-bottom:1px solid var(--line);}
.bl-item:first-child{padding-top:4px;}
.bl-item:last-child{border-bottom:none;}
.bl-head{margin-bottom:12px;}
.bl-date{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.8rem;color:var(--sub);letter-spacing:.06em;}
.bl-title{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:1.16rem;letter-spacing:.05em;line-height:1.75;}
.bl-body{margin-top:16px;}
.bl-body p{font-size:.88rem;color:var(--ink-soft);line-height:2.35;}
.bl-body p + p{margin-top:18px;}
.bl-link{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-size:.8rem;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:4px;}
.bl-link:hover{border-color:var(--accent);}
.bl-empty{font-size:.86rem;color:var(--ink-soft);}
@media(max-width:560px){
  .bl-item{padding:30px 0;}
  .bl-title{font-size:1.06rem;}
}
