:root{
    --ink:#16233B;
    --muted:#586373;
    --coral:#FFA511;
    --coral-deep:#E8900A;
    --paper:#F5F2EA;
    --paper-2:#EDE8DC;
    --paper-dim:rgba(245,242,234,.68);
    --line:#D8D2C4;
    --font:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;

    --fs-xs:.82rem;
    --fs-sm:.94rem;
    --fs-base:1.02rem;
    --fs-eye:.95rem;
    --fs-h:1.5rem;
    --fs-stmt:2rem;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--font);background:var(--paper);color:var(--ink);line-height:1.8;font-weight:400;font-size:var(--fs-base);-webkit-font-smoothing:antialiased;overflow-x:hidden}

  .eyebrow{font-size:var(--fs-eye);letter-spacing:.16em;font-weight:700;color:var(--muted)}
  h2.sec-t{font-size:var(--fs-h);font-weight:900;letter-spacing:.02em;line-height:1.5;margin-top:.5rem;color:var(--ink)}
  .stmt{font-size:var(--fs-stmt);font-weight:900;line-height:1.6;letter-spacing:.02em;color:var(--ink)}
  .stmt .hl{color:var(--coral)}


  header{position:sticky;top:0;z-index:50;background:rgba(245,242,234,.9);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
  .nav{max-width:1120px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between}
  .brand{font-weight:900;font-size:var(--fs-h);letter-spacing:.01em;display:flex;align-items:baseline;gap:.5rem;color:var(--ink)}
  .brand .dot{color:var(--coral)}
  .brand small{font-weight:700;font-size:var(--fs-xs);letter-spacing:.14em;color:var(--muted)}
  nav ul{list-style:none;display:flex;gap:2rem;align-items:center}
  nav a{color:var(--ink);text-decoration:none;font-size:var(--fs-sm);font-weight:500;position:relative;padding:.2rem 0}
  nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--coral);transition:width .28s ease}
  nav a:hover::after,nav a:focus-visible::after{width:100%}
  .nav-cta{background:var(--coral);color:var(--ink) !important;padding:.5rem 1.1rem;border-radius:2px;font-weight:700}
  .nav-cta::after{display:none}
  .nav-cta:hover{background:var(--coral-deep)}

  /* hero */
  .hero{max-width:1120px;margin:0 auto;padding:6rem 2rem 4.5rem}
  .hero .eyebrow{margin-bottom:1.8rem;display:block}
  .hero h1{font-size:var(--fs-stmt);font-weight:900;line-height:1.55;letter-spacing:.02em;margin-bottom:1.8rem;color:var(--ink)}
  .hero h1 .hl{color:var(--coral)}
  .hero-lead{max-width:54ch;font-size:var(--fs-base);color:var(--muted);line-height:1.95}
  .hero-lead b{color:var(--ink);font-weight:700}

  section{max-width:1120px;margin:0 auto;padding:4.5rem 2rem}
  .sec-head{margin-bottom:2.4rem}

  /* mission / vision */
  .mv{background:var(--ink);color:var(--paper)}
  .mv-inner{max-width:1120px;margin:0 auto;padding:4.5rem 2rem;display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}
  .mv .stmt{color:var(--paper)}
  .mv-block .kind{font-size:var(--fs-eye);letter-spacing:.16em;color:var(--paper-dim);font-weight:700;margin-bottom:1.2rem}
  .mv-block .kind-en{color:var(--paper-dim);font-weight:500;margin-left:.5rem;letter-spacing:.12em}
  .mv-block .note{margin-top:1.4rem;color:var(--paper-dim);font-size:var(--fs-sm);line-height:1.9;max-width:40ch}
  .mv-block+.mv-block{border-left:1px solid rgba(245,242,234,.16);padding-left:3.5rem}

  /* why */
  .why p{font-size:var(--fs-base);line-height:2;max-width:66ch;color:var(--ink)}
  .why p+p{margin-top:1.3rem}
  .why .pull{font-weight:700;font-size:var(--fs-h);color:var(--ink);line-height:1.7;margin:2rem 0;padding-left:1.4rem;border-left:4px solid var(--coral);max-width:66ch}

  /* businesses — シンプルな一覧 */
  .biz-list{border-top:1px solid var(--line)}
  .biz{display:grid;grid-template-columns:minmax(200px,240px) 1fr;gap:2rem;padding:2.4rem 0;border-bottom:1px solid var(--line);align-items:baseline}
  .biz .head .no{font-size:var(--fs-xs);color:var(--muted);font-weight:700;letter-spacing:.06em}
  .biz .head .nm{font-size:var(--fs-h);font-weight:900;color:var(--ink);margin-top:.3rem;line-height:1.4}
  .biz .head .pn{font-size:var(--fs-xs);color:var(--muted);font-weight:700;margin-top:.5rem}
  .biz .desc{font-size:var(--fs-base);color:var(--muted);line-height:1.95;max-width:60ch}

  /* principle */
  .principle{background:var(--paper-2)}
  .principle-inner{max-width:1120px;margin:0 auto;padding:4.5rem 2rem;text-align:center}
  .principle .lbl{font-size:var(--fs-eye);letter-spacing:.16em;color:var(--muted);font-weight:700;margin-bottom:1.4rem}
  .principle .sub{margin-top:1.4rem;color:var(--muted);font-size:var(--fs-base);max-width:56ch;margin-inline:auto;line-height:1.95}

  /* news（お知らせ） */
  .news-list{border-top:1px solid var(--line)}
  .news-item{display:grid;grid-template-columns:150px 1fr;gap:1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line);align-items:baseline}
  .news-item .date{font-size:var(--fs-sm);color:var(--muted);font-weight:700;letter-spacing:.03em}
  .news-item .cat{display:inline-block;font-size:var(--fs-xs);font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:2px;padding:.12rem .55rem;margin-right:.7rem;vertical-align:middle}
  .news-item .txt{font-size:var(--fs-base);color:var(--ink);line-height:1.7}

  /* careers（採用） */
  .careers{background:var(--paper-2)}
  .careers-inner{max-width:1120px;margin:0 auto;padding:4.5rem 2rem}
  .careers .lead{font-size:var(--fs-h);font-weight:900;color:var(--ink);line-height:1.6;margin:.5rem 0 1.2rem;max-width:30ch}
  .careers p{font-size:var(--fs-base);color:var(--muted);line-height:1.95;max-width:60ch}
  .careers .cta{display:inline-block;margin-top:1.8rem;background:var(--coral);color:var(--ink);text-decoration:none;font-weight:700;padding:.75rem 1.5rem;border-radius:2px}
  .careers .cta:hover{background:var(--coral-deep)}

  /* company */
  .company dl{display:grid;grid-template-columns:auto 1fr;gap:0;max-width:660px}
  .company dt{font-weight:700;color:var(--ink);padding:1rem 2.5rem 1rem 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm);white-space:nowrap}
  .company dd{padding:1rem 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--fs-sm)}
  .company dd a{color:var(--coral);text-decoration:none;font-weight:700}
  .company dd a:hover{text-decoration:underline}
  .origin{margin-top:2.6rem;padding:1.8rem 2rem;background:#fff;border:1px solid var(--line);border-radius:3px;max-width:660px}
  .origin .t{font-weight:900;font-size:var(--fs-h);margin-bottom:.5rem;color:var(--ink)}
  .origin p{font-size:var(--fs-sm);color:var(--muted);line-height:1.9}

  footer{background:var(--ink);color:var(--paper);padding:3.2rem 2rem;margin-top:2rem}
  .foot-inner{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.5rem}
  .foot-brand{font-weight:900;font-size:var(--fs-h);color:var(--paper)}
  .foot-brand .dot{color:var(--coral)}
  .foot-inner .meta{color:var(--paper-dim);font-size:var(--fs-xs);line-height:2}
  .foot-inner .meta a{color:var(--paper);text-decoration:underline}


  /* 言語切替 */
  .langswitch{display:flex;gap:.15rem;align-items:center;margin-left:1rem;font-size:var(--fs-xs);font-weight:700}
  .langswitch a{color:var(--muted);text-decoration:none;padding:.2rem .45rem;border-radius:3px}
  .langswitch a.on{color:var(--ink);background:var(--coral)}
  .langswitch span{color:var(--line)}
  /* モバイル用メニュートグル（チェックボックス方式・JS不要） */
  .menu-btn{display:none;background:none;border:0;cursor:pointer;font-size:1.6rem;line-height:1;color:var(--ink);padding:.2rem .4rem}
  #navtoggle{display:none}

  /* タブレット以下（〜1024）：メニューをハンバーガーに */
  @media(max-width:1024px){
    .hero,.mv-inner,section,.principle-inner,.foot-inner,.careers-inner{padding-left:1.5rem;padding-right:1.5rem}
    .nav{position:relative;flex-wrap:nowrap}
    .menu-btn{display:block}
    nav ul{
      display:none;
      position:absolute;top:100%;left:0;right:0;
      flex-direction:column;align-items:stretch;gap:0;
      background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
      padding:.4rem 0;box-shadow:0 14px 26px -14px rgba(22,35,59,.28);z-index:60;
    }
    #navtoggle:checked ~ ul{display:flex}
    nav ul li{width:100%}
    nav ul li a{display:block;padding:.85rem 1.5rem}
    .nav-cta{display:block;margin:.5rem 1.5rem;text-align:center}
    .langswitch{margin:.5rem 1.5rem}
  }

  /* スマホ・タブレット縦（〜860）：レイアウトを1列に */
  @media(max-width:860px){
    .mv-inner{grid-template-columns:1fr;gap:2.4rem}
    .mv-block+.mv-block{border-left:none;border-top:1px solid rgba(245,242,234,.16);padding-left:0;padding-top:2.4rem}
    .biz{grid-template-columns:1fr;gap:.6rem;padding:1.8rem 0}
    .news-item{grid-template-columns:1fr;gap:.3rem}
    .company dl{grid-template-columns:1fr}
    .company dt{border-bottom:none;padding-bottom:.2rem}
    .company dd{padding-top:.2rem;padding-bottom:1rem}
    .hero{padding-top:3.5rem}
    :root{--fs-stmt:1.7rem;--fs-h:1.35rem}
  }

  /* 小型スマホ（〜480） */
  @media(max-width:480px){
    .hero,.mv-inner,section,.principle-inner,.foot-inner,.careers-inner{padding-left:1.1rem;padding-right:1.1rem}
    .foot-inner{flex-direction:column;align-items:flex-start}
    :root{--fs-stmt:1.5rem;--fs-base:1rem}
  }

  @media(prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}html{scroll-behavior:auto}}
  a:focus-visible,button:focus-visible{outline:2px solid var(--coral);outline-offset:3px}
