:root {
  --ink: #0A3B27;
  --green: #067F38;
  --accent: #C9502A;
  --kakeibo: #00703C; /* EC家計簿のサイトの緑 */
  --adant: #E00612;   /* ADantのサイトの赤 */
  --paper: #FFFFFF;
  --mist: #F2F5F3;
  --rule: rgba(10, 59, 39, .16);
  --muted: #4B6358;
  --side: 210px;
  /* ADant・EC家計簿のサイトと同じ LINE Seed JP */
  --jp: "LINE Seed JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", "Meiryo", sans-serif;
  --en: var(--jp);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--jp);
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .02em;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt";
}
a { color: inherit; }
img { max-width: 100%; display: block; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
h1, h2, h3, .about-lead, .careers-lead, .contact-lead, .vision dd { word-break: auto-phrase; }
ul, ol { list-style: none; }
.pc { display: inline; }

/* ---- side nav ---- */
.side {
  position: fixed;
  top: 0; left: 0;
  width: var(--side);
  height: 100vh;
  padding: 44px 0 0 36px;
  z-index: 20;
}
.brand { display: inline-flex; align-items: flex-end; gap: 6px; text-decoration: none; }
.brand-logo { display: block; width: 150px; height: auto; } /* 2026-09-26 田中様から頂いたロゴ */
.brand-name {
  display: block;
  font-family: var(--en);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1;
}
.brand-sub {
  display: block;
  margin-bottom: 2px;
  font-family: var(--en);
  font-size: 9.5px;
  letter-spacing: .12em;
  line-height: 1.4;
}
.nav { margin-top: 56px; display: flex; flex-direction: column; gap: 14px; }
.nav a {
  font-family: var(--en);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-decoration: none;
  line-height: 1.3;
  width: fit-content;
  border-bottom: 1px solid transparent;
}
.nav a:hover { border-bottom-color: var(--ink); }
.nav .nav-contact { margin-top: 0; }
.menu-btn { display: none; }
.menu-btn:focus:not(:focus-visible) { outline: none; } /* タップ後に黒い枠が残らないように */

main { margin-left: var(--side); }

/* ---- hero ---- */
.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  margin-left: calc(var(--side) * -1);
  overflow: hidden;
}
.ink {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero-copy {
  position: absolute;
  right: 6vw;
  bottom: 9vh;
  text-align: right;
}
.hero h1 {
  color: var(--green);
  font-size: clamp(36px, 4.7vw, 68px);
  font-weight: 800;
  line-height: 1.32;
  letter-spacing: .02em;
}
.hero-lead {
  margin-top: 26px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.8;
}
.hero-links { margin-top: 12px; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.hero-link {
  display: inline-block;
  font-size: 12.5px;
  color: var(--green);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  line-height: 1.6;
}
.arw { display: inline-block; margin-left: .5em; font-family: var(--en); }

.js-intro .hero:not(.intro) .hero-copy { opacity: 0; }
/* トップの見出し：1文字ずつ下から入る（main.js が .intro → .go を付ける） */
.hero .line { display: block; overflow: hidden; padding-bottom: .04em; }
.hero.intro .ch { display: inline-block; transform: translateY(105%); }
.hero.intro.go .ch { transform: none; transition: transform 1s cubic-bezier(.16, 1, .3, 1); }
.hero.intro .hero-lead, .hero.intro .hero-link { opacity: 0; transform: translateY(16px); }
.hero.intro.go .hero-lead, .hero.intro.go .hero-link { opacity: 1; transform: none; transition: opacity .8s ease, transform .9s cubic-bezier(.16, 1, .3, 1); }
.hero.intro.go .hero-lead { transition-delay: 3.5s; }
.hero.intro.go .hero-link { transition-delay: 3.7s; }

/* スクロールで出す */
.rv { opacity: 0; transform: translateY(28px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.rv.rv-on { opacity: 1; transform: none; }

/* セクション見出し（ABOUT など）を1文字ずつ */
.sec-head .line, .contact-en .line { display: block; overflow: hidden; padding-bottom: .06em; }
.rv .ch { display: inline-block; transform: translateY(105%); transition: transform 1s cubic-bezier(.16, 1, .3, 1); }
.rv.rv-on .ch { transform: none; }

/* 事業カードのモール名：少し行き過ぎて戻る */
.biz-card.rv .biz-malls span { opacity: 0; transform: translateX(-28px); }
.biz-card.rv-on .biz-malls span { opacity: 1; transform: none; transition: transform .8s cubic-bezier(.34, 1.56, .64, 1), opacity .4s ease; }
.biz-card.rv-on .biz-malls span:nth-child(1) { transition-delay: .25s; }
.biz-card.rv-on .biz-malls span:nth-child(2) { transition-delay: .35s; }
.biz-card.rv-on .biz-malls span:nth-child(3) { transition-delay: .45s; }
.biz-card.rv-on .biz-malls span:nth-child(4) { transition-delay: .55s; }

.count { color: var(--green); font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) {
  .biz-card.rv .biz-malls span { opacity: 1; transform: none; }
  .rv { opacity: 1; transform: none; transition: none; }
}

/* ---- sections ---- */
.sec {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 40px;
  padding: 130px 7vw 130px 3vw;
  border-top: 1px solid var(--rule);
}
.sec-mist { background: var(--mist); border-top: 0; }
.sec-head .en {
  color: var(--green);
  font-family: var(--en);
  font-size: 38px;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1.1;
}
.sec-head .jp { margin-top: 12px; font-size: 13px; font-weight: 600; }
.sec-body { min-width: 0; }

/* about */
.about { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.about-lead {
  font-size: clamp(22px, 2.3vw, 32px);
  font-weight: 700;
  line-height: 1.7;
}
.about-text p + p { margin-top: 1.2em; }
.vision { margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--ink); }
.vision dt { font-family: var(--en); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.vision dd { margin-top: 6px; font-size: 18px; font-weight: 700; line-height: 1.7; }

/* values */
.sec-ink { background: var(--ink); color: #fff; border-top: 0; }
.sec-ink .sec-head .jp { color: rgba(255, 255, 255, .8); }
.values { counter-reset: v; border-top: 1px solid var(--ink); }
.values li {
  counter-increment: v;
  display: grid;
  grid-template-columns: 48px minmax(0, 1.1fr) minmax(0, 1fr);
  grid-template-areas: "n en en" "n h p";
  gap: 2px 28px;
  padding: 24px 0;
  border-bottom: 1px solid var(--rule);
}
.values li::before {
  content: counter(v, decimal-leading-zero);
  grid-area: n;
  font-family: var(--en);
  font-size: 13px;
  font-weight: 700;
  padding-top: 4px;
}
.v-en { grid-area: en; font-family: var(--en); font-size: 22px; font-weight: 700; letter-spacing: .03em; line-height: 1.35; }
.values h3 { grid-area: h; margin-top: 8px; font-size: 14.5px; font-weight: 700; line-height: 1.7; }
.values h3 + p { grid-area: p; margin-top: 8px; font-size: 13.5px; color: var(--muted); line-height: 1.8; }
.values li::before { color: var(--green); }

/* company */
.table { border-top: 1px solid var(--ink); }
.table div { display: grid; grid-template-columns: 9em 1fr; padding: 18px 0; border-bottom: 1px solid var(--rule); font-size: 14.5px; line-height: 1.8; }
.table dt { font-weight: 700; }

/* careers */
.careers-lead { font-size: clamp(20px, 2vw, 26px); font-weight: 700; line-height: 1.7; margin-bottom: 18px; }

/* contact */
.contact {
  padding: 120px 7vw 120px 3vw;
  background: var(--mist);
  display: grid;
  grid-template-columns: 250px 1fr auto;
  grid-template-areas: "en lead btn" "en note btn";
  gap: 6px 40px;
  align-items: center;
}
.contact-en { grid-area: en; color: var(--green); font-family: var(--en); font-size: 38px; font-weight: 800; letter-spacing: .04em; align-self: start; }
.contact-lead { grid-area: lead; font-size: clamp(22px, 2.4vw, 32px); font-weight: 700; line-height: 1.6; }
.contact-note { grid-area: note; font-size: 14px; align-self: start; }
.btn {
  grid-area: btn;
  display: inline-block;
  padding: 20px 40px;
  background: var(--ink);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .1em;
  white-space: nowrap;
}
.btn:hover { background: var(--green); }

/* footer */
.foot { margin-left: var(--side); padding: 48px 7vw 56px 3vw; font-size: 12.5px; line-height: 1.9; border-top: 1px solid var(--rule); }
.foot-name { font-weight: 700; font-size: 14px; }
.foot-links { margin-top: 8px; }
.copy { margin-top: 18px; font-family: var(--en); font-size: 11px; color: var(--muted); }

/* 仮置きメモ（お客様確認用） */
.memo {
  margin-top: 28px;
  padding: 14px 18px;
  background: #FFF6D8;
  border-left: 3px solid #D9A400;
  color: #4A3A00;
  font-size: 12.5px;
  line-height: 1.8;
}
.memo-toggle {
  margin-top: 16px;
  padding: 8px 12px;
  background: #FFF6D8;
  border: 1px solid #D9A400;
  color: #4A3A00;
  font: 600 11.5px/1.4 var(--jp);
  cursor: pointer;
}
body.hide-memo .memo { display: none; }

/* 見出しを上に置く幅広のセクション */
.sec-wide { grid-template-columns: 1fr; gap: 44px; padding-left: 3vw; }
.sec-wide .sec-head { display: flex; align-items: baseline; gap: 22px; flex-wrap: wrap; }
.sec-wide .sec-head .jp { margin-top: 0; }

.text-link {
  display: inline-block;
  margin-top: 22px;
  font-size: 13.5px;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  line-height: 1.6;
}
.text-link:hover { color: var(--green); }

/* nav の自社ツール */
.nav-drop { display: flex; flex-direction: column; }
.nav .nav-drop-top { display: inline-flex; align-items: center; gap: 8px; }
.nav-caret { font-size: 12px; font-weight: 400; line-height: 1; transition: transform .25s; }
.nav-drop-menu {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .3s ease, opacity .25s ease, margin .3s ease;
  border: 0 solid transparent;
}
.nav-drop:hover .nav-drop-menu,
.nav-drop:focus-within .nav-drop-menu {
  max-height: 160px;
  opacity: 1;
  margin-top: 10px;
  border-width: 1px;
  border-color: var(--rule);
}
.nav-drop:hover .nav-caret,
.nav-drop:focus-within .nav-caret { transform: rotate(45deg); }
.nav .nav-drop-menu a {
  display: block;
  width: auto;
  padding: 10px 14px;
  font-family: var(--jp);
  letter-spacing: .04em;
  border-bottom: 0;
  background: var(--paper);
}
.nav .nav-drop-menu a + a { border-top: 1px solid var(--rule); }
.nav .nav-drop-menu a:hover { background: var(--mist); }
.nav-drop-menu b { display: block; font-size: 13px; }
.nav-drop-menu b::after { content: " →"; font-family: var(--en); font-weight: 400; color: var(--green); }
.nav-drop-menu small { display: block; font-size: 10.5px; color: var(--muted); letter-spacing: .02em; }

/* business */
.biz { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.biz-card { background: var(--paper); border: 1px solid var(--rule); display: flex; flex-direction: column; min-width: 0; }
.biz-visual { background: #E7EDE9; height: 300px; display: flex; align-items: center; justify-content: center; padding: 22px; overflow: hidden; }
.biz-visual img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.biz-malls { display: flex; flex-direction: column; justify-content: center; gap: 0; padding: 18px 30px; }
.biz-malls span { display: block; width: 100%; padding: 7px 0; border-bottom: 1px solid rgba(10, 59, 39, .22); font-size: clamp(15px, 1.25vw, 18px); font-weight: 700; letter-spacing: .06em; }
.biz-malls span:last-child { border-bottom: 0; }
/* 上下の余白を文字の見た目でそろえる：最初と最後の行の外側の余白を外し、行の高さを詰める（2026-09-26 宮田さん指摘） */
.biz-malls > span { line-height: 1.4; padding: 9px 0; }
.biz-malls > span:first-child { padding-top: 0; }
.biz-malls > span:last-child { padding-bottom: 0; }
.nw { white-space: nowrap; }
.biz-malls small .nw, .biz-card.rv .biz-malls small .nw { display: inline; width: auto; padding: 0; border: 0; font: inherit; letter-spacing: inherit; opacity: 1; transform: none; }
.biz-malls small { display: block; margin-top: 2px; font-size: 10.5px; font-weight: 500; letter-spacing: .02em; color: var(--muted); line-height: 1.5; }
.biz-body { padding: 26px 28px 28px; display: flex; flex-direction: column; flex: 1; }
.biz-no { font-family: var(--en); font-size: 13px; font-weight: 700; color: var(--green); letter-spacing: .1em; }
.biz-tag { margin-top: 4px; font-size: 12px; font-weight: 700; color: var(--green); }
.biz-card h3 { margin-top: 4px; font-size: 28px; font-weight: 700; line-height: 1.35; }
.biz-card h3 small { margin-left: 10px; font-size: 12.5px; }
.biz-card h3 + p { flex: 1 0 auto; margin-top: 12px; font-size: 14px; line-height: 1.85; }
.biz-list { margin: 16px 0 24px; border-top: 1px solid var(--rule); }
.biz-list li { padding: 8px 0 8px 14px; border-bottom: 1px solid var(--rule); font-size: 13.5px; line-height: 1.6; position: relative; }
.biz-list li::before { content: ""; position: absolute; left: 0; top: calc(8px + .8em); width: 6px; height: 1px; background: var(--ink); }
.biz-facts { margin: 16px 0 24px; border-top: 1px solid var(--rule); }
.biz-facts div { display: grid; grid-template-columns: 6em 1fr; padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: 13.5px; line-height: 1.6; }
.biz-facts dt { font-weight: 700; }
.biz-btn {
  margin-top: auto;
  display: block;
  padding: 15px 18px;
  background: var(--ink);
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .06em;
}
.biz-btn:hover { background: var(--green); }
.biz-kakeibo .biz-no, .biz-kakeibo .biz-tag { color: var(--kakeibo); }
.biz-kakeibo .biz-btn { background: var(--kakeibo); }
.biz-kakeibo .biz-btn:hover { background: #005a30; }
.biz-adant .biz-no, .biz-adant .biz-tag { color: var(--adant); }
.biz-adant .biz-btn { background: var(--adant); }
.biz-adant .biz-btn:hover { background: #B8050F; }

/* works（お客様の声） */
.voice-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.col-head { padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-size: 16px; font-weight: 700; }
.col-head span { margin-right: 12px; font-family: var(--en); font-size: 13px; color: var(--green); letter-spacing: .1em; }
.voice-col ul { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.voice { padding: 20px 20px 18px; border: 1px solid var(--rule); background: var(--paper); }
.voice h3 { font-size: 15.5px; line-height: 1.6; font-weight: 700; }
.voice h3 + p { margin-top: 10px; font-size: 13px; line-height: 1.85; color: var(--muted); }
.v-who { margin-top: 12px; font-size: 12px; font-weight: 700; }
.voice-ph { background: var(--paper); }
.v-ch { font-size: 12px; font-weight: 700; color: var(--green); }
.v-ph-text { margin-top: 6px; font-size: 13px; color: var(--muted); line-height: 1.7; }

/* seminar / media */
.news-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
.news-col, .voice-col { min-width: 0; }
.news-list { margin-top: 4px; }
.news-list li { border-bottom: 1px solid var(--rule); }
.news-list a { display: grid; grid-template-columns: 168px 1fr; gap: 18px; padding: 18px 0; text-decoration: none; align-items: start; }
.news-list a:hover .news-title { color: var(--green); }
.news-thumb { aspect-ratio: 16 / 9; background: var(--mist); overflow: hidden; }
.news-thumb img { width: 100%; height: 100%; object-fit: cover; }
.news-meta { display: flex; align-items: center; gap: 10px; font-size: 12px; line-height: 1.5; }
.news-meta time { font-family: var(--en); font-weight: 500; }
.news-type { padding: 1px 8px; border: 1px solid var(--green); color: var(--green); font-weight: 700; font-size: 11px; }
.news-title { overflow-wrap: anywhere; margin-top: 6px; font-size: 14px; font-weight: 700; line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-site { margin-top: 4px; font-family: var(--en); font-size: 11px; color: var(--muted); }

/* ---- responsive ---- */
@media (max-width: 1439px) {
  .biz { grid-template-columns: 1fr; }
  .biz-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
  .biz-visual { height: auto; min-height: 300px; }
}

@media (max-width: 1100px) {
  .about { grid-template-columns: 1fr; gap: 32px; }
  .voice-cols, .news-cols { grid-template-columns: 1fr; gap: 44px; }
}

@media (max-width: 960px) {
  :root { --side: 0px; }
  html { scroll-padding-top: 64px; }
  .pc { display: none; }
  .side {
    width: 100%;
    height: 64px;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--paper);
    border-bottom: 1px solid var(--rule);
  }
  .brand-name { font-size: 22px; }
  .brand-logo { width: 110px; }
  .brand-sub { margin-top: 4px; font-size: 8.5px; }
  /* ★2026-09-26 田中様：スマホのメニューは三本線で、シックに */
  .menu-btn {
    display: block;
    position: relative;
    z-index: 2;
    width: 40px; height: 40px;
    margin-right: -8px;
    background: none;
    border: 0;
    cursor: pointer;
  }
  .menu-btn span {
    position: absolute;
    left: 10px; right: 10px;
    height: 1.5px;
    background: var(--ink);
    transition: transform .35s cubic-bezier(.2, .7, .2, 1), opacity .2s ease, background .3s ease;
  }
  .menu-btn span:nth-child(1) { top: 14px; }
  .menu-btn span:nth-child(2) { top: 19.5px; }
  .menu-btn span:nth-child(3) { top: 25px; }
  .side.open .menu-btn span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
  .side.open .menu-btn span:nth-child(2) { opacity: 0; }
  .side.open .menu-btn span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
  .nav {
    display: flex;
    position: fixed;
    top: 64px; left: 0; right: 0; bottom: 0;
    margin: 0;
    padding: 24px 32px 40px;
    background: var(--ink);
    gap: 0;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s ease, visibility 0s linear .35s;
  }
  .side.open .nav { opacity: 1; visibility: visible; transition: opacity .35s ease; }
  .nav > a, .nav .nav-drop-top {
    width: 100%;
    padding: 15px 0;
    color: #fff;
    font-size: 12.5px;
    letter-spacing: .22em;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
  }
  .nav a:hover { border-bottom-color: rgba(255, 255, 255, .14); opacity: .75; }
  .nav .nav-contact { margin-top: 0; }
  .nav-drop-menu, .nav-drop:hover .nav-drop-menu, .nav-drop:focus-within .nav-drop-menu {
    max-height: none; opacity: 1; margin: 0; border: 0; padding: 4px 0 10px 16px;
  }
  .nav .nav-drop-menu a, .nav .nav-drop-menu a + a { background: none; border: 0; padding: 8px 0; color: rgba(255, 255, 255, .85); }
  .nav .nav-drop-menu a:hover { background: none; }
  .nav-drop-menu b { font-size: 12.5px; font-weight: 500; }
  .nav-drop-menu b::after { color: rgba(255, 255, 255, .6); }
  .nav-drop-menu small { color: rgba(255, 255, 255, .55); }
  .hero-links { align-items: flex-start; }
  main { margin-left: 0; padding-top: 64px; }
  .hero { margin-left: 0; min-height: calc(100svh - 64px); }
  .hero-copy { left: 20px; right: 20px; bottom: 40px; text-align: left; }
  .hero-lead { font-size: 14px; }
  .sec { grid-template-columns: 1fr; gap: 28px; padding: 80px 20px; }
  .sec-head .en, .contact-en { font-size: 30px; }
  .sec-wide { padding-left: 20px; gap: 28px; }
  .biz-card { display: flex; }
  .biz-visual { min-height: 0; height: 210px; }
  .biz-malls { height: auto; min-height: 0; padding: 30px 24px; } /* 高さは中身に合わせる */
  .biz-body { padding: 22px 20px 24px; }
  .news-list a { grid-template-columns: 112px 1fr; gap: 14px; }
  .nav-caret { display: none; }
  .values li { grid-template-columns: 36px 1fr; grid-template-areas: "n en" "n h" "n p"; }
  .v-en { font-size: 18px; }
  .table div { grid-template-columns: 6.5em 1fr; }
  .contact {
    grid-template-columns: 1fr;
    grid-template-areas: "en" "lead" "note" "btn";
    padding: 80px 20px;
    gap: 10px;
  }
  .btn { justify-self: start; margin-top: 18px; }
  .foot { margin-left: 0; padding: 40px 20px 72px; }
}

/* ---- 下層ページ（お問い合わせ・プライバシーポリシー） ---- */
.page { min-height: 100vh; }
.page-sec { padding-top: 110px; border-top: 0; }
.sec-head h1.en { margin: 0; }
.nav .is-current { border-bottom-color: var(--ink); }
.page-lead { word-break: auto-phrase; font-size: clamp(20px, 2vw, 26px); font-weight: 700; line-height: 1.6; }
.page-note { margin-top: 10px; font-size: 14px; color: var(--muted); }
.form-wrap { max-width: 760px; }
.cform { margin-top: 40px; border-top: 1px solid var(--ink); }
.cf-row { display: grid; grid-template-columns: 11em minmax(0, 1fr); gap: 10px 24px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--rule); }
.cf-label { padding-top: 10px; font-size: 14px; font-weight: 700; line-height: 1.5; }
.cf-label em, .cf-label i { display: inline-block; margin-left: 8px; padding: 0 6px; font-size: 10.5px; font-style: normal; font-weight: 700; line-height: 1.7; vertical-align: 1px; }
.cf-label em { background: var(--green); color: #fff; }
.cf-label i { border: 1px solid var(--rule); color: var(--muted); }
.cform input[type="text"], .cform input[type="email"], .cform input[type="tel"], .cform input[type="url"], .cform textarea {
  width: 100%; padding: 11px 14px; border: 1px solid rgba(10, 59, 39, .28); border-radius: 0; background: #fff;
  font: 15px/1.7 var(--jp); color: var(--ink); letter-spacing: .02em;
}
.cform textarea { resize: vertical; min-height: 180px; }
.cform input:focus, .cform textarea:focus { outline: 2px solid var(--green); outline-offset: -1px; border-color: var(--green); }
.cf-choices { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 4px; }
.cf-choices label { cursor: pointer; }
.cf-choices input { position: absolute; opacity: 0; pointer-events: none; }
.cf-choices span { display: inline-block; padding: 8px 14px; border: 1px solid rgba(10, 59, 39, .28); font-size: 13.5px; line-height: 1.5; background: #fff; transition: background .15s, color .15s, border-color .15s; }
.cf-choices input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; }
.cf-choices input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.cf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cf-agree { display: flex; align-items: center; gap: 10px; margin-top: 28px; font-size: 14px; cursor: pointer; }
.cf-agree input { width: 18px; height: 18px; accent-color: var(--green); }
.cf-agree a { color: var(--green); }
.cf-error { margin-top: 16px; padding: 12px 16px; background: #FDECEC; color: #A8121C; font-size: 13.5px; font-weight: 700; }
.cf-submit { display: inline-flex; align-items: center; margin-top: 28px; border: 0; cursor: pointer; font-family: var(--jp); }
.cf-submit.is-sending { opacity: .6; cursor: wait; }
.cf-done { margin-top: 40px; padding: 36px 32px; background: var(--mist); }
.cf-done-title { font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.policy { max-width: 780px; font-size: 14.5px; line-height: 2; }
.policy p + p { margin-top: 1em; }
.policy h2 { margin: 2.4em 0 .6em; padding-bottom: 8px; border-bottom: 1px solid var(--rule); font-size: 17px; font-weight: 700; }
.policy ul { margin: .6em 0 0 1.2em; list-style: disc; }
.policy li { margin: .2em 0; }
.policy-sign { margin-top: 3em !important; }
@media (max-width: 960px) {
  .page-sec { padding-top: 56px; }
  .cf-row { grid-template-columns: 1fr; gap: 8px; padding: 16px 0; }
  .cf-label { padding-top: 0; }
  .cf-submit { width: 100%; justify-content: center; }
}

/* ---- 2026-09-26 田中様：角をやわらかく・囲いを減らす ---- */
/* ⑤⑥ ボタンは角を丸く、影で少し浮かせる */
.btn, .biz-btn, .cf-submit {
  border-radius: 999px;
  box-shadow: 0 6px 16px -8px rgba(10, 59, 39, .45);
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.btn:hover, .biz-btn:hover, .cf-submit:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -10px rgba(10, 59, 39, .55); }
.biz-adant .biz-btn { box-shadow: 0 6px 16px -8px rgba(224, 6, 18, .5); }

/* ② ご用件の選択肢：丸い形・薄い影 */
.cf-choices span {
  border-radius: 999px;
  border-color: rgba(10, 59, 39, .16);
  padding: 8px 16px;
  box-shadow: 0 2px 8px -4px rgba(10, 59, 39, .25);
}
.cf-choices label:hover span { border-color: var(--green); }
.cf-choices input:checked + span { box-shadow: 0 6px 14px -6px rgba(10, 59, 39, .5); }

/* 入力欄も角を少し丸く */
.cform input[type="text"], .cform input[type="email"], .cform input[type="tel"], .cform input[type="url"], .cform textarea { border-radius: 10px; }
.cform input:focus, .cform textarea:focus { outline-offset: 0; }
.cf-note { display: block; margin-top: 6px; font-size: 12px; color: var(--muted); font-weight: 400; }

/* ④ PCのPRODUCTSの開き方：囲いをなくす */
@media (min-width: 961px) {
  .nav-drop:hover .nav-drop-menu,
  .nav-drop:focus-within .nav-drop-menu { border-width: 0; margin-top: 6px; }
  .nav .nav-drop-menu { padding-left: 14px; border-left: 1px solid var(--green) !important; }
  .nav .nav-drop-menu a, .nav .nav-drop-menu a + a { padding: 6px 0; background: none; border: 0; }
  .nav .nav-drop-menu a:hover { background: none; }
  .nav .nav-drop-menu a:hover b { color: var(--green); }
}

.cf-label [hidden] { display: none; } /* 必須／任意の出し分けが inline-block で消えなかったため */

/* ---- 2026-09-26 田中様（夜）：タグを大きく・キャラクター・画像の大きさをそろえる・業種のイラスト ---- */
/* ⑦ 事業カードの小見出し（タグ）を大きく */
.biz-tag { margin-top: 6px; font-size: 17px; line-height: 1.5; letter-spacing: .02em; }
.biz-tag span + span { margin-left: 1em; }
.biz-card h3 { margin-top: 6px; }
/* ⑨ EC家計簿＝のびとん、ADant＝アント君をカードの白い部分の右上に。画像や境目にはかぶせない（2026-09-26 田中様「ズレてそう」で変更） */
.biz-body { position: relative; }
.biz-mascot { position: absolute; top: 20px; right: 20px; width: clamp(96px, calc(100% - 236px), 150px); height: auto; pointer-events: none; }
.biz-card h3 small { white-space: nowrap; } /* 「アドアント」を途中で折り返さない */
.biz-card:has(.biz-mascot) .biz-tag span { display: block; }
.biz-card:has(.biz-mascot) .biz-tag span + span { margin-left: 0; }
@media (min-width: 1440px) {
  .biz-visual { height: 320px; } /* 販路のロゴが収まる高さ。3枚とも同じ高さにそろえる */
}
@media (max-width: 1439px) {
  /* 横並びのカード：文字の右側に置く */
  .biz-mascot { top: 18px; right: 22px; width: auto; height: 136px; }
  .biz-kakeibo .biz-mascot { top: 24px; height: 126px; }
  .biz-card:has(.biz-mascot) .biz-no,
  .biz-card:has(.biz-mascot) .biz-tag,
  .biz-card:has(.biz-mascot) h3 { padding-right: 170px; }
}
/* ⑧ EC家計簿とADantの画面画像を同じ大きさの枠にそろえる（横長のEC家計簿は右端を少し切る） */
.biz-kakeibo .biz-visual img,
.biz-adant .biz-visual img { width: 100%; height: auto; max-height: none; aspect-ratio: 1009 / 574; object-fit: cover; object-position: left top; border-radius: 6px; box-shadow: 0 6px 18px rgba(10, 59, 39, .12); background: #fff; }
/* ④ お客様の声の見出しに説明を添える */
.col-head small { margin-left: 6px; font-size: 11.5px; font-weight: 700; color: var(--muted); letter-spacing: 0; white-space: nowrap; }
/* 3列で横に収まらない幅では、括弧書きを名前の下の行に回し、3列とも見出しの高さをそろえる */
@media (min-width: 1101px) and (max-width: 1439px) {
  .col-head { min-height: 58px; }
  .col-head small { display: block; margin: 4px 0 0 25px; }
}
/* ⑥ 業種の前にイラスト */
.v-who { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.v-icon { flex: none; width: 34px; height: 34px; border-radius: 4px; }
@media (max-width: 960px) {
  .biz-tag { font-size: 15px; }
  /* スマホ：キャラは番号とタグの横だけに置き、見出し（ADant アドアント）の行にはかからない高さにする */
  .biz-mascot { top: 16px; right: 12px; width: auto; height: 84px; }
  .biz-kakeibo .biz-mascot { top: 18px; height: 80px; }
  .biz-card:has(.biz-mascot) .biz-no,
  .biz-card:has(.biz-mascot) .biz-tag { padding-right: 112px; }
  .biz-card:has(.biz-mascot) h3 { padding-right: 0; }
}
/* ② EC支援の販路：楽天市場は文字、ほかはロゴ */
.biz-malls { justify-content: center; padding: 18px 26px; }
.mall-row { align-self: stretch; width: 100%; padding: 10px 0; border-bottom: 1px solid rgba(10, 59, 39, .18); }
.mall-row:first-child { padding-top: 0; }
.mall-row:last-child { padding-bottom: 0; border-bottom: 0; }
.mall-name { margin-bottom: 6px; font-size: 13px; font-weight: 700; letter-spacing: .06em; line-height: 1.4; }
.mall-text { font-size: 14px; font-weight: 800; letter-spacing: .04em; color: #BF0000; }
.mall-logos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.mall-logos li { height: 30px; padding: 5px 10px; background: #fff; border-radius: 6px; display: flex; align-items: center; justify-content: center; }
.mall-logos img { display: block; max-width: 100%; max-height: 18px; width: auto; height: auto; }
.biz-card.rv .mall-row { opacity: 0; transform: translateX(-28px); }
.biz-card.rv-on .mall-row { opacity: 1; transform: none; transition: transform .8s cubic-bezier(.34, 1.56, .64, 1), opacity .4s ease; }
.biz-card.rv-on .mall-row:nth-child(2) { transition-delay: .12s; }
.biz-card.rv-on .mall-row:nth-child(3) { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) { .biz-card.rv .mall-row { opacity: 1; transform: none; } }
@media (max-width: 960px) {
  .mall-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.v-ch + h3 { margin-top: 6px; }

/* ⑫ PCの見出しを少し左上へ（四つ葉を左に寄せたので、右下に詰めすぎない） */
@media (min-width: 961px) {
  .hero-copy { right: 7.5vw; bottom: 12vh; }
}
.news-soon { padding: 1px 8px; background: var(--green); color: #fff; font-weight: 700; font-size: 11px; border-radius: 999px; }

/* ---- 2026-09-26 23:30〜 田中様⑯〜⑲ ---- */
/* ⑯ 3枚とも小見出し（タグ）を2行にして、下の見出しの高さをそろえる */
.biz-tag span { display: block; }
.biz-tag span + span { margin-left: 0; }
/* ⑱ お客様の声の販路：楽天は楽天の赤（クリムゾンレッド）の文字、Amazon・Yahoo!はロゴ、自社サイトは色を変えて目立たせる */
.v-rakuten { color: #BF0000; font-size: 13px; font-weight: 800; }
.v-logo img { display: block; height: 16px; width: auto; }
.v-own { display: inline-block; padding: 2px 10px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 12px; }
/* ⑲ 見出しの強調は赤の太字で一回り大きく */
.voice h3 .hl { font-style: normal; font-weight: 800; color: #D7000F; font-size: 1.2em; }
.voice h3 .hl .count { color: inherit; }
.voice h3 .hl { white-space: nowrap; } /* 強調した語は途中で折り返さない（長いものだけ hl-wrap で折り返し可） */
.voice h3 .hl-wrap { white-space: normal; }
/* ⑳ VALUESの文字を大きく */
.values h3 { font-size: 17px; }
.values h3 + p { font-size: 15.5px; }
.v-en { font-size: 24px; }
/* ㉑ 会社概要の表を見出しから離す（PC） */
@media (min-width: 961px) {
  #company .table { margin-left: clamp(24px, 6vw, 110px); }
  #company .table div { font-size: 15.5px; }
}
@media (max-width: 960px) {
  .values h3 { font-size: 16px; }
  .values h3 + p { font-size: 14.5px; }
  .v-en { font-size: 19px; }
}

/* 代表メッセージ（サンプル） */
.message { max-width: 760px; }
.msg-text p { font-size: 16.5px; line-height: 2.05; }
.msg-text p + p { margin-top: 1.1em; }
.msg-text p:first-child { font-size: 20px; font-weight: 700; }
.msg-sign { margin-top: 36px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.msg-role { font-size: 13px; font-weight: 700; }
.msg-signature { width: 240px; height: 84px; border: 1.5px dashed rgba(10, 59, 39, .35); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 12.5px; color: var(--muted); }
.message .memo { margin-top: 28px; }
@media (max-width: 960px) {
  .msg-text p { font-size: 15px; }
  .msg-text p:first-child { font-size: 18px; }
  .msg-signature { width: 200px; height: 72px; }
}
/* 強調の見直し（2026-09-26 宮田さん「バランス悪い」）：
   語ごとの折り返し禁止をやめて行末の空きをなくし、見出しは行の長さがそろうように折り返す。
   数字だけは途中で切らない。赤字の行だけ行間が広がらないよう行の高さを固定 */
.voice h3 { text-wrap: balance; line-height: 1.65; }
.voice h3 .hl { white-space: normal; font-size: 1.14em; line-height: 1; }
.voice h3 .hl:has(.count) { white-space: nowrap; }
/* SEMINAR / MEDIA：左右の列で1件ごとの位置をそろえる（2026-09-26 宮田さん）。
   2列のときはタイトルを2行までにして、1件の高さをサムネイルの高さに固定する */
@media (min-width: 1101px) {
  .news-list a { height: 132px; overflow: hidden; align-items: start; }
  .news-title { -webkit-line-clamp: 2; }
}
/* PCの左メニュー：ロゴとABOUTの間が空きすぎていたので詰める（2026-09-26 宮田さん） */
@media (min-width: 961px) {
  .nav { margin-top: 30px; }
}

/* ---- 2026-09-27 田中様①〜⑥ ---- */
/* ① 3列のとき、のびとん・アント君を文字のすぐ右に寄せる（右端ではなく、文字の終わりから少しあけた位置） */
@media (min-width: 1440px) {
  .biz-mascot { right: auto; left: 226px; width: clamp(88px, calc(100% - 246px), 150px); }
}
/* ④-1 PCの左メニューの文字を大きく */
@media (min-width: 961px) {
  .nav { gap: 13px; }
  .nav a { font-size: 13px; }
  .nav-drop-menu b { font-size: 14px; }
  .nav-drop-menu small { font-size: 11.5px; }
}
/* ④-2 Inc. を大きく */
.brand-sub { font-size: 12px; }
@media (max-width: 960px) { .brand-sub { font-size: 10px; } }
/* ④-3 見出しの区切り線を左メニューに食い込ませず、見出しの左端から引く（PC） */
@media (min-width: 961px) {
  .sec { border-top: 0; position: relative; }
  .sec:not(.sec-mist)::before { content: ""; position: absolute; top: 0; left: 3vw; right: 7vw; border-top: 1px solid var(--rule); }
}
/* ⑥ お客様の声：列の見出しを大きく・販路名を大きく・自社サイトの黒い札をやめる・赤字は本文と同じ大きさ */
.col-head { font-size: 20px; }
.col-head span { font-size: 15px; }
.col-head small { font-size: 13px; }
.v-rakuten { font-size: 15.5px; }
.v-logo img { height: 21px; }
.v-own { display: block; padding: 0; border-radius: 0; background: none; color: var(--green); font-size: 15.5px; font-weight: 800; letter-spacing: .04em; }
.voice h3 .hl { font-size: 1em; line-height: inherit; }
@media (min-width: 961px) {
  .foot { border-top: 0; position: relative; }
  .foot::before { content: ""; position: absolute; top: 0; left: 3vw; right: 7vw; border-top: 1px solid var(--rule); }
}
/* ⑥ 列の見出しは大きくしたので、括弧書きはどの幅でも名前の下の行に置き、3列の高さをそろえる */
.col-head small { display: block; margin: 6px 0 0; white-space: normal; }
@media (min-width: 1101px) and (max-width: 1439px) { .col-head { min-height: 0; } .col-head small { margin: 6px 0 0; } }
/* 代表メッセージの直筆サイン（田中様の写真から背景を抜いたもの） */
.msg-signature-img { display: block; width: 230px; height: auto; }
@media (max-width: 960px) { .msg-signature-img { width: 190px; } }
@media (max-width: 960px) { .msg-text br { display: none; } } /* スマホは田中様の改行を外して自然に折り返す */
.msg-sign { gap: 22px; } /* 肩書きとサインの間をあける（2026-09-27 宮田さん） */

/* ---- 2026-09-27 午前 田中様①② ---- */
/* ① お客様の声：3列のとき、EC家計簿・ADantのカードの区切りをEC支援のカードの区切りにそろえる（行をそろえる。カードに余白が出るのは了承済み） */
@media (min-width: 1101px) {
  .voice-cols { grid-template-rows: auto repeat(4, auto); row-gap: 12px; }
  .voice-col { display: grid; grid-row: span 5; grid-template-rows: subgrid; }
  .voice-col ul { display: contents; }
  .voice-col .col-head { margin-bottom: 4px; }
}
/* ② サインの左端を肩書きの左端にそろえ、肩書きは手書きになじむ明朝体に（端末標準の書体） */
.msg-sign { align-items: flex-start; width: fit-content; margin-left: auto; }
.msg-role { font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", serif; font-weight: 600; font-size: 14px; letter-spacing: .12em; }
