/* =========================================================
   ZEN Marketing — Corporate Site  stylesheet v2.0（シンプル版）
   ---------------------------------------------------------
   ルール：UI要素の角丸0〜3px／box-shadow禁止／アクセントバー禁止
   動き：スクロール時のフェードイン（.reveal）のみ
   ========================================================= */
:root{
  --ink:#1c2b36;
  --text:#2a3a46;
  --muted:#5f6f7b;
  --teal:#08475f;
  --blue:#0c6283;
  --sky:#dbe9f3;
  --sky-2:#e4f2fb;
  --coral:#f0634a;
  --rule:#d5e0e8;
  --white:#fff;

  --font-head:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  --font-body:"Noto Sans JP",sans-serif;

  --container:1200px;   /* 本文の最大幅 */
  --site-max:1440px;    /* 帯（お問い合わせ）の最大幅 */
  --gutter:clamp(20px,4vw,60px);
  --radius:2px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--text);background:var(--white) url(../img/bg-grid.webp) repeat top left/406px 408px;line-height:1.9;font-size:15px;letter-spacing:.02em;overflow-x:hidden}
img,svg{display:block;max-width:100%;height:auto}
ul{list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:1.25;color:var(--ink)}
.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.pc{display:inline}.sp-only{display:none}
@media (max-width:767px){.pc{display:none}}

/* ---------- Common ---------- */
.label{font-family:var(--font-head);font-weight:700;font-size:16px;letter-spacing:.1em;color:var(--blue);margin-bottom:10px}
.heading-xl{font-size:clamp(28px,3.6vw,46px);font-weight:900;line-height:1.25;letter-spacing:.01em}
.section-head{text-align:center;margin-bottom:44px}
.section-head .label{margin-bottom:8px}
.section{padding:90px 0}

.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:700;padding:15px 28px;border-radius:var(--radius);color:#fff;font-size:15px;line-height:1;transition:background .3s}
.btn .arrow{transition:transform .3s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}
.btn--teal{background:var(--teal)}.btn--teal:hover{background:var(--blue)}
.btn--coral{background:var(--coral)}.btn--coral:hover{background:#e0533a}
.btn--sm{padding:12px 20px;font-size:13px}
.btn--lg{padding:20px 44px;font-size:17px}

.text-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--blue);border-bottom:1px solid currentColor;padding-bottom:2px}
.text-link .arrow{transition:transform .3s var(--ease)}
.text-link:hover .arrow{transform:translateX(4px)}

.photo{position:relative;overflow:hidden;border-radius:var(--radius)}
.photo img{width:100%;height:100%;object-fit:cover}

/* 白い面（内容を乗せる面） */
.panel{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius)}
.section-panel{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(36px,4.2vw,60px) clamp(24px,4.2vw,60px)}
.section-panel .heading-xl{font-size:clamp(26px,3.1vw,40px)}
.section-panel{position:relative;overflow:hidden}
.section-panel>*{position:relative;z-index:1}
.section-panel__bg{position:absolute!important;right:-3%;bottom:-6%;width:min(58%,700px);height:auto;opacity:.09;z-index:0!important;pointer-events:none}

/* ---------- 流れる背景アイコン（方眼の上） ---------- */
.bg-icons{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-icons__lane{position:absolute;left:0;right:0;top:var(--top);height:160px}
.bg-icons__track{display:flex;align-items:center;gap:clamp(110px,11vw,210px);width:max-content;padding-left:40px;animation:laneScroll var(--dur) linear infinite;animation-direction:var(--dir,normal)}
.bg-icons__track img{width:120px;height:auto;opacity:.5;flex:0 0 auto;animation:iconFloat 7s ease-in-out infinite;animation-delay:calc(var(--i) * -.9s)}
.bg-icons__lane--sm .bg-icons__track img{width:84px;opacity:.42}
.bg-icons__track img:nth-child(3n){transform:translateY(28px)}
.bg-icons__track img:nth-child(3n+1){transform:translateY(-22px)}
@keyframes laneScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes iconFloat{0%,100%{margin-top:0}50%{margin-top:-14px}}
main,.site-footer{position:relative;z-index:1}
.site-header{z-index:100}
@media (max-width:1000px){.bg-icons__track img{width:80px}.bg-icons__lane--sm{display:none}}
@media (prefers-reduced-motion:reduce){.bg-icons__track,.bg-icons__track img{animation:none!important}}

/* スクロール表示 */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- Opening（ロゴの輪郭が描かれる→キャッチ→白が割れる） ---------- */
.op{position:fixed;inset:0;z-index:2000;display:none}
.op.is-on{display:block}
.op__half{position:absolute;left:0;right:0;height:50%;background:var(--white);transition:transform 1s var(--ease);z-index:0}
.op__half--t{top:0}.op__half--b{bottom:0}
.op.is-out .op__half--t{transform:translateY(-101%)}.op.is-out .op__half--b{transform:translateY(101%)}
.op.is-out .op__logo,.op.is-out .op__tag{opacity:0;transition:opacity .35s}
.op__logo{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-62%);width:min(60vw,560px)}
.op__logo svg{width:100%;height:auto;display:block;overflow:visible}
.op .lg{fill:var(--ink);fill-opacity:0;stroke:var(--ink);stroke-width:1.1;stroke-linejoin:round;stroke-dasharray:var(--len,1000);stroke-dashoffset:var(--len,1000);vector-effect:non-scaling-stroke}
.op .lg.mk{stroke-width:.9}
.op .lg.bar{stroke:var(--blue);fill:var(--blue)}
.op .lg.draw{transition:stroke-dashoffset var(--d,600ms) var(--ease)}
.op .lg.on{stroke-dashoffset:0}
.op .lg.fill{transition:fill-opacity .6s var(--ease),stroke-opacity .6s;fill-opacity:1;stroke-opacity:0}
.op__tag{position:absolute;z-index:1;left:50%;top:calc(50% + min(7vw,60px));transform:translateX(-50%);font-family:var(--font-head);font-weight:700;font-size:clamp(14px,2vw,26px);letter-spacing:.08em;color:var(--ink);white-space:nowrap}
.op__tag .ch{display:inline-block;opacity:0;transform:translateY(.4em);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.op__tag .ch.on{opacity:1;transform:none}
.op__tag .zen{color:var(--blue)}
.op__tag .ex{color:var(--coral)}
body.is-opening{overflow:hidden}
@media (max-width:600px){.op__logo{width:72vw}.op__tag{font-size:clamp(12px,3.6vw,16px);letter-spacing:.04em}}

/* ---------- Header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--rule)}
.site-header__inner{max-width:var(--container);margin-inline:auto;padding:16px var(--gutter);display:flex;align-items:center;gap:32px}
.site-logo img{width:170px;height:auto}
.global-nav{margin-left:auto}
.global-nav ul{display:flex;gap:28px}
.global-nav a{font-size:13.5px;font-weight:500;position:relative;padding:6px 0}
.global-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ink);transition:width .3s var(--ease)}
.global-nav a:hover::after{width:100%}
.menu-toggle{display:none;width:34px;height:24px;position:relative;margin-left:auto}
.menu-toggle span{position:absolute;left:4px;right:4px;height:2px;background:var(--ink);transition:transform .3s,top .3s}
.menu-toggle span:nth-child(1){top:7px}.menu-toggle span:nth-child(2){top:15px}
.menu-toggle.is-open span:nth-child(1){top:11px;transform:rotate(45deg)}
.menu-toggle.is-open span:nth-child(2){top:11px;transform:rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{padding:120px 0 60px;overflow:hidden}
.hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,4vw,60px);align-items:stretch}
.hero__text{display:flex;flex-direction:column;align-items:flex-start;padding:36px 0 0}
.hero__title{font-size:clamp(34px,3.9vw,56px);font-weight:900;line-height:1.22;letter-spacing:.01em;margin:0 0 26px;white-space:nowrap}
.hero__lead{font-size:clamp(14.5px,1.1vw,16px);line-height:2;margin-bottom:28px}
.hero__illust{margin-top:auto;padding-top:36px;width:min(22vw,300px);align-self:flex-start}
.hero__photo{position:relative;margin:0;min-height:460px;border-radius:120px 0 0 0;overflow:hidden;margin-right:calc((min(var(--container),100vw) - 100vw) / 2 - var(--gutter))}
.hero__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.text-link--lg{font-size:16px;padding-bottom:4px}

/* ---------- Hero（背景動画） ---------- */
.hero--video{position:relative;padding:0;min-height:clamp(560px,82vh,820px);display:flex;align-items:center;overflow:hidden;margin-bottom:10px}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__video{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.92) 34%,rgba(255,255,255,.55) 56%,rgba(255,255,255,.08) 80%,rgba(255,255,255,0) 100%)}
.hero__veil::after{content:"";position:absolute;left:0;right:0;top:0;height:90px;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0))}
.hero__inner{position:relative;z-index:1;width:100%;padding-top:70px}
.hero--video .hero__text{max-width:720px;padding:0}
.hero--video .label{margin-bottom:14px}
.hero--video .hero__title{font-size:clamp(36px,4.4vw,64px);margin-bottom:24px}
.hero__title--line{font-size:clamp(26px,3.5vw,50px)!important;white-space:nowrap;letter-spacing:.02em}
/* タイピング表示 */
[data-type]{visibility:hidden}
[data-type].is-ready{visibility:visible}
[data-type] .ch{opacity:0}
[data-type] .ch.is-on{opacity:1}
.type-caret{display:inline-block;width:2px;height:.95em;background:var(--blue);vertical-align:-.12em;margin-left:3px;animation:caretBlink .9s steps(1) infinite}
@keyframes caretBlink{50%{opacity:0}}
.hero__btn{opacity:0;transform:translateY(8px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.hero__btn.is-on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){[data-type]{visibility:visible}[data-type] .ch{opacity:1}.type-caret{display:none}.hero__btn{opacity:1;transform:none}}
.hero--video .hero__lead{font-size:clamp(15px,1.15vw,17px);margin-bottom:32px;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.hero__video{display:none}.hero__media{background:url(../video/hero-meeting-poster.webp) center 40%/cover no-repeat}}

/* ---------- 見出し左寄せの2カラム（About／Company／News） ---------- */
.section-head--left{text-align:left;margin-bottom:34px}
.split{display:grid;grid-template-columns:minmax(260px,.9fr) 1.6fr;gap:clamp(30px,5vw,80px);align-items:start}

/* ---------- About ---------- */
.about{padding:30px 0 20px}
.about__grid{display:grid;grid-template-columns:minmax(300px,1fr) 1.5fr;gap:clamp(30px,5vw,80px);align-items:start}
.about__body{padding-top:34px}
.about__illust{width:100%;max-width:400px;height:auto;margin-top:30px}
.about__text{font-size:clamp(15px,1.15vw,16.5px);line-height:2.1;margin-bottom:24px}

/* ---------- Service（縦リスト：番号／イラスト／文章） ---------- */
.service{padding:20px 0}
.service-list{list-style:none;border-top:1px solid var(--rule)}
.service-list__item{display:grid;grid-template-columns:110px 280px 1fr;gap:40px;align-items:center;padding:40px 8px;border-bottom:1px solid var(--rule)}
.service-list__num{font-family:var(--font-head);font-weight:900;font-size:64px;line-height:1;color:var(--blue);letter-spacing:.02em;align-self:start;padding-top:2px}
.service-list__illust{width:280px;height:190px;object-fit:contain;object-position:center}
.service-list__body{max-width:640px}
.service-list__title{font-size:clamp(18px,1.6vw,23px);font-weight:900;line-height:1.45;margin-bottom:10px;color:var(--ink)}
.service-list__lead{font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--blue);line-height:1.8;margin-bottom:12px}
.service-list__desc{font-size:14.5px;color:var(--text);line-height:2}

/* ---------- Works（ご依頼企業数の推移グラフ） ---------- */
.works{padding:20px 0}
.works-chart__head{display:flex;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-bottom:28px}
.works-chart__title{font-family:var(--font-head);font-weight:700;font-size:16px;color:var(--ink);flex:1 1 100%;margin-bottom:-6px}
.works-chart__hero{display:flex;align-items:baseline;gap:6px;line-height:1}
.works-chart__num{font-family:var(--font-head);font-weight:900;font-size:clamp(56px,7vw,104px);color:var(--blue);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.works-chart__unit{font-family:var(--font-head);font-weight:700;font-size:clamp(20px,2vw,28px);color:var(--ink)}
.works-chart__range{font-family:var(--font-head);font-weight:500;font-size:14px;color:var(--muted);padding-bottom:10px}
.works-chart__plot{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;align-items:end;height:260px;padding-bottom:26px;border-bottom:1px solid var(--rule)}
.works-chart__col{position:relative;height:100%;display:flex;align-items:flex-end}
.works-chart__bar{position:relative;width:100%;height:var(--h);background:var(--blue);border-radius:2px 2px 0 0;transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--ease);transition-delay:calc(var(--i) * 70ms)}
.works-chart__bar.is-last{background:var(--coral)}
.works-chart.is-on .works-chart__bar{transform:scaleY(1)}
.works-chart__bar::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;font-family:var(--font-head);font-weight:700;font-size:12px;color:#fff;background:var(--ink);padding:5px 9px;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .2s}
.works-chart__bar:hover::after{opacity:1}
.works-chart__x{position:absolute;left:0;top:calc(100% + 8px);font-family:var(--font-head);font-weight:500;font-size:12px;color:var(--muted);white-space:nowrap}
.works-chart__col:last-child .works-chart__x{left:auto;right:0}
.works-chart__note{margin-top:18px;font-size:12.5px;color:var(--muted);line-height:1.8}

/* ---------- Company ---------- */
.company{padding:20px 0}
.company__grid{display:grid;grid-template-columns:minmax(300px,1fr) 1.5fr;gap:clamp(30px,5vw,80px);align-items:start}
.company__more{grid-column:2;margin-top:18px}
.def-list{border-top:1px solid var(--rule)}
.def-list>div{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:15px 0;border-bottom:1px solid var(--rule);font-size:14.5px}
.def-list dt{font-weight:700;color:var(--ink)}

/* ---------- News ---------- */
.news{padding:20px 0 70px}
.news__grid{display:grid;grid-template-columns:minmax(300px,1fr) 1.5fr;gap:clamp(30px,5vw,80px);align-items:start}
.news__list{border-top:1px solid var(--rule)}
.news__list li{border-bottom:1px solid var(--rule)}
.news__list a{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:14px 0;font-size:14.5px;transition:color .3s}
.news__list a:hover{color:var(--blue)}
.news__list time{font-family:var(--font-head);font-weight:500;color:var(--muted)}
.news__more{margin-top:20px;text-align:right}

/* ---------- カテゴリーのバッジ（v3.16.0）：日付の横に出るラベル。色はカテゴリーの編集画面で選ぶ ---------- */
.post-cat{--bc:var(--blue);--bb:var(--sky-2);display:inline-block;font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.06em;line-height:1.6;color:var(--bc);background:var(--bb);border:1px solid var(--bc);border-radius:2px;padding:2px 10px;white-space:nowrap}
.post-cat--teal{--bc:var(--teal);--bb:#e3eef2}
.post-cat--coral{--bc:#c2412b;--bb:#fdece8}
.post-cat--ink{--bc:var(--ink);--bb:#eef1f3}
.post-cat--gray{--bc:var(--muted);--bb:#f2f5f7}
/* トップのお知らせ：日付｜バッジ｜タイトル。バッジの列幅は一番長いものに揃える */
.news__list a{grid-template-columns:100px minmax(132px,auto) 1fr;align-items:center}
.news__cat{display:flex}
.news__cat .post-cat{flex:1;text-align:center}
@supports (grid-template-columns:subgrid){
  .news__list{display:grid;grid-template-columns:100px minmax(132px,auto) 1fr;column-gap:16px}
  .news__list li{grid-column:1/-1;display:grid;grid-template-columns:subgrid}
  .news__list a{grid-column:1/-1;grid-template-columns:subgrid}
}

/* トップのお知らせ：カテゴリーのタブ（v3.24.0）。押すとそのカテゴリーの 5 件に切り替わる */
.news-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.news-tabs a{display:inline-flex;align-items:center;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);padding:6px 14px;font-family:var(--font-head);font-weight:700;font-size:13px;line-height:1.6;color:var(--text);transition:border-color .3s,color .3s,background .3s}
.news-tabs a:hover{border-color:var(--blue);color:var(--blue)}
.news-tabs a.is-current{background:var(--ink);border-color:var(--ink);color:#fff}
.news-tabs a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.news__list[hidden]{display:none}

/* ---------- Contact ---------- */
.contact{position:relative;background:var(--sky-2);padding:80px 20px;text-align:center;overflow:hidden}
.contact__title{font-size:clamp(22px,2.6vw,38px);font-weight:900;margin-bottom:14px;letter-spacing:.01em}
.contact__lead{font-size:15px;color:var(--muted);margin-bottom:30px}
.contact__illust{position:absolute;right:4%;bottom:0;width:min(14vw,190px);pointer-events:none}

/* ---------- Footer ---------- */
.site-footer{padding:28px 0}
.site-footer__inner{display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.site-footer__nav{display:flex;gap:22px;flex-wrap:wrap}
.site-footer__nav a{font-size:12px;font-weight:500}
.site-footer__nav a:hover{color:var(--blue)}
.site-footer__copy{margin-left:auto;font-size:11px;color:var(--muted)}

/* ---------- Products（自社サービス・ツール：LP カード） ---------- */
.products{padding:20px 0}
.products__head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap}
.products__lead{max-width:560px;font-size:14.5px;line-height:2;color:var(--text);margin:0}
.products__list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.products__list--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.products__list--one{grid-template-columns:minmax(0,1fr)}
.product-card{border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);transition:border-color .3s}
.product-card:hover{border-color:var(--blue)}
.product-card__link{display:flex;flex-direction:column;height:100%;color:inherit}
.product-card__media{display:flex;align-items:center;justify-content:center;background:var(--sky-2);padding:24px;height:190px;border-bottom:1px solid var(--rule)}
.product-card__media img{max-width:220px;max-height:130px;width:auto;height:auto;object-fit:contain;transition:transform .5s var(--ease)}
.product-card__media--mark img{width:112px;height:112px;max-height:none}
.product-card:hover .product-card__media img{transform:translateY(-3px)}
.product-card__body{display:flex;flex-direction:column;gap:8px;padding:22px 24px 24px;flex:1}
.product-card__tag{font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.08em;color:var(--blue);margin:0}
.product-card__title{font-size:clamp(18px,1.5vw,21px);font-weight:900;line-height:1.4;color:var(--ink);margin:0}
.product-card__catch{font-family:var(--font-head);font-weight:700;font-size:14.5px;color:var(--ink);line-height:1.7;margin:0}
.product-card__desc{font-size:13.5px;line-height:1.9;color:var(--text);margin:0}
.product-card__more{margin-top:auto;padding-top:10px;align-self:flex-start}
.products__list--one .product-card__link{flex-direction:row}
.products__list--one .product-card__media{flex:0 0 320px;height:auto;min-height:220px;border-bottom:0;border-right:1px solid var(--rule)}
.products__list--one .product-card__body{padding:32px 36px}
.products__more{text-align:right;margin-top:24px}
.products__list--after{margin-top:24px}

/* ---------- Products：大きく紹介する表示（v3.17.0）。ZEN の色に、蔵番の墨・朱・明朝を混ぜる ---------- */
.pf{--pf-sumi:#1e1e1e;--pf-aka:#ca201a;--pf-mincho:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);overflow:hidden}
.pf+.pf{margin-top:24px}
.pf__top{display:grid;grid-template-columns:minmax(0,1fr) 380px}
.pf__copy{display:flex;flex-direction:column;gap:18px;padding:42px 44px 36px}
.pf__badges{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.pf__badge{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid var(--blue);color:var(--blue);font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.06em;border-radius:2px;line-height:1.7}
.pf__badge--fill{background:var(--blue);color:var(--white)}
.pf__headline{margin:0;font-family:var(--pf-mincho);font-weight:800;font-size:clamp(28px,3vw,40px);line-height:1.4;letter-spacing:.04em;color:var(--pf-sumi)}
.pf__em{color:var(--pf-aka)}
.pf__question{margin:0;font-family:var(--font-head);font-weight:700;font-size:clamp(15px,1.3vw,17px);line-height:1.7;color:var(--ink)}
.pf__intro{margin:0;font-size:14.5px;line-height:1.95;color:var(--text)}
.pf__intro strong{color:var(--ink)}
.pf__name{display:flex;align-items:center;gap:12px;margin:2px 0 0}
.pf__name svg{flex:0 0 auto}
.pf__name-ja{font-family:var(--pf-mincho);font-weight:800;font-size:22px;letter-spacing:.06em;color:var(--pf-sumi)}
.pf__name-en{font-family:var(--pf-mincho);font-size:12px;letter-spacing:.3em;color:#6b6b6b}
.pf__visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:420px;background:var(--pf-sumi);overflow:hidden}
.pf__ring{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
.pf__ring--1{width:360px;height:360px;border:1px solid #333}
.pf__ring--2{width:270px;height:270px;border:1px solid #3f3f3f}
.pf__ring--3{width:180px;height:180px;border:1px solid #4a4a4a}
.pf__mark{position:relative;display:flex}
.pf__visual--img .pf__mark img{max-width:200px;max-height:200px;width:auto;height:auto}
.pf__chips{list-style:none;margin:0;padding:0}
.pf__chip{position:absolute;display:inline-flex;align-items:center;gap:7px;padding:7px 12px;background:var(--white);color:var(--pf-sumi);font-size:12.5px;font-weight:700;border-radius:2px;line-height:1.5;white-space:nowrap}
.pf__chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue);flex:0 0 auto}
.pf__chip.is-em::before{background:var(--pf-aka)}
.pf__chip--1{top:46px;left:30px}
.pf__chip--2{top:150px;right:18px}
.pf__chip--3{bottom:104px;left:26px}
.pf__chip--4{bottom:40px;right:30px}
.pf__merits{border-top:1px solid var(--rule);padding:28px 44px 30px}
.pf__merits-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin:0 0 18px}
.pf__merits-label{font-family:var(--font-head);font-weight:700;font-size:13px;letter-spacing:.12em;color:var(--blue)}
.pf__merits-title{font-family:var(--font-head);font-weight:900;font-size:20px;color:var(--ink)}
.pf__merit-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.pf__merit{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:6px 14px;padding:18px 22px 18px;border:1px solid var(--rule);border-top:3px solid var(--blue);background:var(--white)}
.pf__merit.is-em{border-top-color:var(--pf-aka)}
.pf__merit-no{font-family:var(--font-head);font-weight:900;font-size:13px;color:var(--blue)}
.pf__merit.is-em .pf__merit-no{color:var(--pf-aka)}
.pf__merit-title{font-family:var(--font-head);font-weight:900;font-size:17px;line-height:1.5;color:var(--ink)}
.pf__merit-text{grid-column:2;font-size:13.5px;line-height:1.85;color:var(--text)}
.pf__cta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 24px;padding:22px 44px;background:var(--sky-2)}
.pf__cta-copy{display:flex;flex-direction:column;gap:4px}
.pf__cta-title{margin:0;font-family:var(--font-head);font-weight:900;font-size:17px;color:var(--ink)}
.pf__cta-text{margin:0;font-size:13px;line-height:1.8;color:var(--text)}
.pf__cta-btns{display:flex;flex-wrap:wrap;gap:10px}
.pf__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 24px;font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--white);border-radius:2px;transition:opacity .3s}
.pf__btn:hover{opacity:.85;color:var(--white)}
.pf__btn--ink{background:var(--pf-sumi)}
.pf__btn--coral{background:var(--coral)}

/* SECURITY ACTION 二つ星（v3.20.3）：ロゴは白地の上に・色や形は変えない */
.site-footer__end{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.site-footer__end .site-footer__copy{margin-left:0}
.site-footer__sa{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;background:var(--white);border:1px solid var(--rule);border-radius:2px;font-size:11px;line-height:1.5;color:var(--ink)}
.site-footer__sa img{width:56px;height:56px}
.site-footer__sa:hover{border-color:var(--blue)}

/* Products：防御カウンター（v3.20.0・蔵番の累計。Merit の代わりに出る） */
.pf-tally{border-top:1px solid var(--rule);padding:30px 44px 26px;display:flex;flex-direction:column;gap:22px}
.pf-tally__head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px 24px}
.pf-tally__lead{display:flex;flex-direction:column;gap:10px}
.pf-tally__label{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0;font-family:var(--font-head);font-weight:700;font-size:13px;letter-spacing:.06em;color:var(--blue)}
.pf-tally__live{display:inline-flex;align-items:center;gap:7px;padding:3px 10px;background:var(--pf-sumi);color:var(--white);font-size:12px;letter-spacing:.12em;border-radius:2px}
.pf-tally__dot{width:7px;height:7px;border-radius:50%;background:var(--pf-aka);animation:pf-tally-dot 2s ease-in-out infinite}
@keyframes pf-tally-dot{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.pf-tally__dot{animation:none}}
.pf-tally__title{margin:0;font-family:var(--pf-mincho);font-weight:800;font-size:clamp(22px,2.4vw,30px);line-height:1.45;letter-spacing:.03em;color:var(--pf-sumi)}
.pf-tally__em{color:var(--pf-aka)}
.pf-tally__updated{margin:0;font-size:12px;line-height:1.8;color:var(--muted);text-align:right;white-space:nowrap}
.pf-tally__body{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:18px}
.pf-tally__count{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:26px 28px 22px;background:var(--pf-sumi);color:var(--white);border-radius:2px}
.pf-tally__count-label{margin:0;font-family:var(--font-head);font-weight:700;font-size:14px;letter-spacing:.04em}
.pf-tally__num{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0;font-family:var(--font-head);line-height:1}
.pf-tally__num-big{font-weight:900;font-size:clamp(64px,7vw,96px);letter-spacing:-.02em}
.pf-tally__num-unit{font-weight:700;font-size:24px}
.pf-tally__num-ips{font-weight:700;font-size:18px}
.pf-tally__ips{color:#ff8a73}
.pf-tally__refused{display:flex;flex-direction:column;gap:2px;margin:0;font-family:var(--font-head);font-weight:700;font-size:14px;line-height:1.5}
.pf-tally__refused-num{display:flex;align-items:baseline;gap:4px}
.pf-tally__refused strong{font-weight:900;font-size:32px;line-height:1.15;color:#ff8a73}
.pf-tally__refused small{margin-right:6px;font-size:16px;font-weight:700}
.pf-tally__count-note{margin:0;padding-top:12px;border-top:1px solid #3a3a3a;font-size:12.5px;line-height:1.8;color:#c9d0d5}
.pf-tally__kinds{display:flex;flex-direction:column;gap:14px;padding:22px 26px;border:1.5px solid var(--ink);border-radius:2px;background:var(--white)}
.pf-tally__kinds-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:0}
.pf-tally__kinds-title{font-family:var(--font-head);font-weight:900;font-size:16px;color:var(--ink)}
.pf-tally__kinds-sub{font-size:12px;color:var(--muted)}
.pf-tally__list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0}
.pf-tally__row{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr) 56px;align-items:center;gap:14px}
.pf-tally__kind{display:flex;flex-direction:column;gap:1px;min-width:0}
.pf-tally__kind-name{font-family:var(--font-head);font-weight:700;font-size:14.5px;line-height:1.5;color:var(--ink)}
.pf-tally__kind-sub{font-size:11.5px;line-height:1.6;color:var(--muted)}
.pf-tally__bar{display:block;height:12px;background:var(--sky-2);border-radius:2px;overflow:hidden}
.pf-tally__bar span{display:block;height:100%;background:var(--blue)}
.pf-tally__row.is-top .pf-tally__bar span{background:var(--pf-aka)}
.pf-tally__n{font-family:var(--font-head);font-weight:900;font-size:19px;text-align:right;color:var(--ink);white-space:nowrap}
.pf-tally__n small{margin-left:2px;font-size:11.5px;font-weight:700}
.pf-tally__point{margin:0;padding:9px 14px;background:#fdece8;color:#c2412b;font-family:var(--font-head);font-weight:700;font-size:13.5px;line-height:1.7;border-radius:2px}
.pf-tally__foot{margin:0;font-size:12px;line-height:1.7;color:var(--muted)}

/* =========================================================
   SP Drawer（スマホ用メニュー・右から出る） v3.18.0
   ヘッダーの外に置く（ヘッダーの backdrop-filter の中だと fixed がヘッダーに閉じ込められるため）
   ========================================================= */
.sp-drawer{display:none;position:fixed;inset:0;z-index:300;visibility:hidden;transition:visibility 0s linear .32s}
.sp-drawer.is-open{visibility:visible;transition-delay:0s}
.sp-drawer__scrim{position:absolute;inset:0;background:rgba(28,43,54,.55);opacity:0;transition:opacity .32s var(--ease)}
.sp-drawer.is-open .sp-drawer__scrim{opacity:1}
.sp-drawer__panel{position:absolute;top:var(--wp-admin--admin-bar--height,0px);right:0;bottom:0;width:min(330px,86vw);background:var(--white);display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateX(100%);transition:transform .32s var(--ease);outline:none;padding-bottom:env(safe-area-inset-bottom)}
.sp-drawer.is-open .sp-drawer__panel{transform:none}
.sp-drawer__head{flex:none;height:62px;box-sizing:border-box;padding:0 8px 0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule)}
.sp-drawer__label{font-size:12px;letter-spacing:.18em;color:var(--muted);font-weight:500}
.sp-drawer__close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--ink);background:transparent;border:0;cursor:pointer}
.sp-drawer__list{flex:none}
.sp-drawer__item{border-bottom:1px solid var(--rule)}
.sp-drawer__link{min-height:56px;padding:0 20px 0 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink)}
.sp-drawer__ja{font-family:var(--font-head);font-size:16px;font-weight:700;line-height:1.4}
.sp-drawer__txt{display:flex;align-items:baseline;gap:10px;min-width:0;margin-right:auto}
.sp-drawer__en{font-size:11px;letter-spacing:.06em;color:var(--muted)}
.sp-drawer__arrow{flex:none;color:var(--blue)}
.sp-drawer__link[aria-current="page"],.sp-drawer__link[aria-current="page"] .sp-drawer__arrow{color:var(--blue)}
.sp-drawer__row{display:flex;align-items:stretch}
.sp-drawer__row .sp-drawer__link{flex:1;min-width:0;padding-right:12px;justify-content:flex-start}
.sp-drawer__sub-toggle{flex:none;width:56px;border:0;border-left:1px solid var(--rule);background:transparent;color:var(--blue);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sp-drawer__sub-toggle svg{transition:transform .25s var(--ease)}
.sp-drawer__sub-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.sp-drawer__item.is-sub-open > .sp-drawer__row .sp-drawer__link{color:var(--blue)}
.sp-drawer__sub{background:var(--sky-2);padding:4px 0}
.sp-drawer__sub a{min-height:44px;padding:8px 20px 8px 24px;box-sizing:border-box;display:flex;align-items:center;gap:12px;color:var(--ink);font-size:14px;line-height:1.5}
.sp-drawer__num{flex:none;width:18px;font-size:11px;font-weight:700;color:var(--blue)}
.sp-drawer__foot{margin-top:auto;padding:24px 24px 28px;display:flex;flex-direction:column;gap:12px}
.sp-drawer__cta{min-height:52px;background:var(--teal);color:var(--white);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-head);font-size:16px;font-weight:700}
.sp-drawer__cta:hover{color:var(--white);opacity:.9}
.sp-drawer__hours{margin:0;text-align:center;font-size:12px;color:var(--muted)}
.sp-drawer__privacy{align-self:center;font-size:12px;color:var(--muted);text-decoration:underline;padding:6px 8px}
html.is-drawer-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .sp-drawer,.sp-drawer__scrim,.sp-drawer__panel,.sp-drawer__sub-toggle svg{transition:none}
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1000px){
  /* v3.18.0：スマホはヘッダー内のナビを隠し、ヘッダー外のドロワー（.sp-drawer）で開く */
  .global-nav{display:none}
  .sp-only{display:block}
  .site-header__cta{display:none}
  .menu-toggle{display:block;width:44px;height:44px;margin:-10px -5px -10px auto}
  .menu-toggle span{left:9px;right:9px}
  .menu-toggle span:nth-child(1){top:17px}.menu-toggle span:nth-child(2){top:25px}
  .sp-drawer{display:block}
  .site-header__inner{gap:16px}

  .hero__grid{grid-template-columns:1fr 1fr}
  .products__list--many{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-list__item{grid-template-columns:80px 220px 1fr;gap:28px;padding:32px 4px}
  .service-list__num{font-size:48px}
  .service-list__illust{width:220px;height:150px}
}
@media (max-width:767px){
  .hero{padding:90px 0 40px}
  .hero--video{min-height:0;padding:0;margin-bottom:0}
  .hero__veil{background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.9) 55%,rgba(255,255,255,.35) 100%)}
  .hero__inner{padding:100px 0 48px}
  .hero--video .hero__title{font-size:clamp(30px,8.4vw,36px);white-space:normal}
  .hero__title--line{font-size:clamp(22px,6.6vw,30px)!important;white-space:nowrap;letter-spacing:0}
  .hero--video .hero__lead{font-size:14px;margin-bottom:22px}
  .hero__grid{grid-template-columns:1fr;gap:24px}
  .hero__text{padding:10px 0 0}
  .hero__title{font-size:clamp(28px,8vw,34px);margin-bottom:16px;white-space:normal}
  .hero__lead{font-size:14px;margin-bottom:20px}
  .hero__illust{display:none}
  .hero__photo{min-height:0;aspect-ratio:4/3;border-radius:48px 0 0 0;margin-right:calc(-1 * var(--gutter))}
  .section-head{margin-bottom:22px}
  .about{padding:20px 0 12px}
  .service,.works,.company,.products{padding:12px 0}
  .news{padding:12px 0 40px}
  .products__head{align-items:flex-start;gap:8px}
  .products__lead br{display:none}
  .products__list,.products__list--many,.products__list--two{grid-template-columns:minmax(0,1fr);gap:14px}
  .products__list--one .product-card__link{flex-direction:column}
  .products__list--one .product-card__media{flex:none;height:140px;min-height:0;border-right:0;border-bottom:1px solid var(--rule)}
  .products__list--one .product-card__body{padding:18px 18px 20px}
  .product-card__media{height:140px;min-height:0;padding:16px}
  .product-card__media img{max-height:100px}
  .product-card__media--mark img{width:88px;height:88px}
  .product-card__body{padding:18px 18px 20px}
  .products__more{text-align:left;margin-top:16px}
  .section-panel{padding:26px 18px}
  .section-panel__bg{width:70%;opacity:.08}
  .container:has(>.section-panel){padding-inline:12px}
  .works-chart__head{gap:16px;margin-bottom:18px}
  .works-chart__plot{height:170px;gap:3px}
  .works-chart__x{font-size:10px}
  .works-chart__x--mid{display:none}
  .works-chart__bar::after{font-size:11px}
  .about__grid,.company__grid,.news__grid{grid-template-columns:1fr;gap:16px}
  .about__body{padding-top:0}
  .about__illust{max-width:260px;margin:16px auto 4px;display:block}
  .about__text br,.contact__lead br,.hero__lead br{display:none}
  .service-list__item{grid-template-columns:96px 1fr;column-gap:16px;align-items:start;padding:18px 0}
  .service-list__num{grid-column:2;font-size:26px;padding:0;margin-bottom:6px;align-self:auto}
  .service-list__illust{grid-column:1;grid-row:1/3;width:96px;height:80px;margin-top:4px}
  .service-list__body{grid-column:2}
  .service-list__title{font-size:16px;margin-bottom:6px}
  .service-list__lead{font-size:13px;margin-bottom:6px}
  .service-list__desc{font-size:13px;line-height:1.8}
  .company__more{grid-column:1}
  .contact{padding:60px 16px 120px}
  .contact__title{font-size:clamp(19px,5vw,26px)}
  .contact__lead{font-size:13.5px;margin-bottom:22px}
  .contact__illust{right:50%;transform:translateX(50%);width:110px}
}
@media (max-width:600px){
  body{font-size:14px}
  .site-logo img{width:150px}
  .def-list>div,.news__list a{grid-template-columns:90px 1fr;gap:12px}
  .def-list>div{padding:11px 0}
  .def-list dd br{display:none}
  .news{padding:10px 0 60px}
  .news__list a{grid-template-columns:1fr;gap:2px;padding:11px 0}
  .news__list{display:block}
  .news__list li{display:block}
  .news__list a{grid-template-columns:auto 1fr;gap:4px 10px}
  .news__title{grid-column:1/-1}
  .news__cat .post-cat{flex:0 0 auto;font-size:10.5px;padding:1px 8px}
  .news__list time{font-size:12px}
  .news-tabs{gap:6px;margin-bottom:14px}
  .news-tabs a{padding:5px 11px;font-size:12px}
  .site-footer__copy{margin-left:0}
  .site-footer__end{margin-left:0;align-items:flex-start}
}

/* Products：大きく紹介する表示のレスポンシブ（v3.17.0） */
@media (max-width:1000px){
  .pf__top{grid-template-columns:minmax(0,1fr)}
  .pf__visual{min-height:380px}
  .pf__merit-list{grid-template-columns:minmax(0,1fr)}
  .pf-tally__body{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .pf__copy{padding:28px 20px 24px;gap:14px}
  .pf__question br{display:none}
  .pf__visual{flex-direction:column;gap:22px;min-height:0;padding:34px 16px 22px}
  .pf__ring{top:94px}
  .pf__ring--1{width:250px;height:250px}.pf__ring--2{width:190px;height:190px}.pf__ring--3{width:130px;height:130px}
  .pf__mark svg{width:104px;height:104px}
  .pf__chips{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  .pf__chip{position:static;white-space:normal;font-size:12px;padding:7px 10px}
  .pf__merits{padding:22px 20px 24px}
  .pf__merit-list{grid-template-columns:minmax(0,1fr);gap:10px}
  .pf__merit{grid-template-columns:minmax(0,1fr);gap:8px}
  .pf__merit-text{grid-column:1}
  .pf-tally{padding:24px 20px 22px;gap:18px}
  .pf-tally__updated{text-align:left}
  .pf-tally__count{padding:22px 20px 18px}
  .pf-tally__kinds{padding:18px 16px}
  .pf-tally__row{grid-template-columns:minmax(0,1fr) 52px;gap:4px 10px}
  .pf-tally__bar{grid-column:1/-1;grid-row:2}
  .pf__cta{padding:20px}
  .pf__cta-btns{width:100%;flex-direction:column}
  .pf__btn{width:100%}
}

/* ZEN AIX（v3.22.0）：蔵番の下。左は蔵番と同じ作り、右の黒い画面は AIX 診断のページの色（黒・水色・オレンジ） */
.aixf{--aix-bg:#05090f;--aix-cyan:#5ce1e6;--aix-orange:#ff7a2f;margin-top:24px}
.aixf__headline{margin:0;font-family:var(--font-head);font-weight:900;font-size:clamp(28px,3vw,38px);line-height:1.35;color:var(--ink)}
.aixf__headline span{color:var(--blue)}
.aixf__name{display:flex;align-items:baseline;gap:12px;margin:2px 0 0}
.aixf__name-ja{font-family:"Chakra Petch",var(--font-head);font-weight:700;font-size:26px;letter-spacing:.04em;color:var(--aix-bg)}
.aixf__name-en{font-family:"Chakra Petch",var(--font-head);font-weight:600;font-size:12px;letter-spacing:.24em;color:var(--muted)}
.aixf__visual{display:flex;flex-direction:column;gap:14px;padding:30px 28px;background-color:var(--aix-bg);background-image:linear-gradient(rgba(92,225,230,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(92,225,230,.06) 1px,transparent 1px);background-size:28px 28px;color:#dbe7ef}
.aixf__live{display:flex;align-items:center;gap:8px;margin:0;font-family:"Chakra Petch",var(--font-head);font-weight:600;font-size:12px;letter-spacing:.18em;color:var(--aix-cyan)}
.aixf__live span{width:8px;height:8px;border-radius:50%;background:var(--aix-cyan)}
.aixf__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.aixf__stats div{border:1px solid rgba(92,225,230,.28);padding:12px 14px;display:flex;flex-direction:column}
.aixf__stats span{font-size:11px;color:#8aa0b0}
.aixf__stats b{font-family:"Chakra Petch",var(--font-head);font-weight:700;font-size:26px;line-height:1.3;color:#fff}
.aixf__stats small{margin-left:4px;font-size:12px;color:#8aa0b0}
.aixf__mods{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:12.5px}
.aixf__mods li{display:grid;grid-template-columns:34px minmax(0,1fr) 80px;align-items:center;gap:8px}
.aixf__no{font-family:"Chakra Petch",var(--font-head);font-size:11px;color:#5f7a8c}
.aixf__bar{position:relative;display:block;height:5px;background:#16242f}
.aixf__bar i{position:absolute;top:0;bottom:0;left:0;background:var(--aix-cyan)}
.aixf__bar i.is-hot{background:var(--aix-orange)}
.aixf__note{margin:2px 0 0;font-size:11px;color:#8aa0b0}
@media (max-width:600px){
  .aixf__visual{padding:24px 18px}
  .aixf__mods li{grid-template-columns:30px minmax(0,1fr) 60px}
}

/* 便利ツール（v3.21.0）：トップ「サービス」の下。カードは 3 列、足りない分は「準備中」の枠 */
.tools{padding:20px 0}
.tools__head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap}
.tools__lead{max-width:460px;font-size:14.5px;line-height:2;color:var(--text);margin:0}
.tools__list{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tool-card{border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);display:flex;flex-direction:column;min-width:0}
.tool-card__top{padding:22px 22px 16px;display:flex;align-items:center;gap:14px}
.tool-card__top svg{flex:0 0 auto;display:block}
.tool-card__names{display:flex;flex-direction:column;gap:2px;min-width:0}
.tool-card__tag{font-family:var(--font-head);font-weight:700;font-size:12px;color:var(--blue)}
.tool-card__name{margin:0;font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:21px;line-height:1.35;letter-spacing:.03em;color:#1e1e1e}
.tool-card__sub{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--ink)}
.tool-card__desc{margin:14px 22px 0;font-size:13.5px;line-height:1.85}
.tool-card__more{margin:auto 22px 0;padding:18px 0 20px;font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--blue);display:flex;justify-content:space-between;align-items:center}
.tool-card__more:hover{color:var(--teal)}
.tool-card--soon{border:1.5px dashed #c5d2db;background:transparent;padding:22px;gap:10px;color:var(--muted)}
.tool-card__soon-text{margin:0;font-size:13.5px}
.tool-card__soon{margin-top:auto;align-self:flex-start;padding:2px 10px;border:1px solid #c5d2db;border-radius:var(--radius);font-size:12px}
.tools__more{margin:24px 0 0;text-align:right}
.jms-mini{margin:0 22px;padding:12px 12px 12px 16px;background:var(--sky-2);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:10px}
.jms-mini__pw{font-family:"JetBrains Mono",ui-monospace,Consolas,monospace;font-weight:700;font-size:16px;letter-spacing:.02em;color:var(--ink);word-break:break-all;min-width:0}
.jms-mini__btn{flex:0 0 auto;width:44px;height:44px;border:1px solid var(--blue);border-radius:var(--radius);background:var(--white);color:var(--blue);cursor:pointer;display:flex;align-items:center;justify-content:center}
.jms-mini__btn:hover{background:var(--sky-2)}
.inb-mini{margin:0 22px;padding:12px;background:var(--sky-2);border-radius:var(--radius);display:flex;align-items:center;gap:12px}
.inb-mini__label{flex:1;min-width:0}
.inb-mini__in{width:100%;font-family:inherit;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);font-size:13px;color:var(--ink)}
.inb-mini__qr{flex:0 0 auto;width:72px;height:72px;display:block;border-radius:var(--radius)}
.mtk-mini{margin:0 22px;padding:12px;background:var(--sky-2);border-radius:var(--radius);display:flex;align-items:center;gap:8px}
.mtk-mini__label{flex:1;min-width:0}
.mtk-mini__in{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);font-family:inherit;font-size:13px;color:var(--ink)}
.mtk-mini__btn{flex:0 0 auto;min-height:44px;padding:0 14px;border:0;border-radius:var(--radius);background:var(--coral);color:var(--white);font-family:var(--font-head);font-weight:700;font-size:14px;cursor:pointer}
.mtk-mini__btn:hover{background:#e0533a}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:1000px){.tools__list{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-card--soon:nth-child(3){display:none}}
@media (max-width:767px){
  .tools{padding:12px 0}
  .tools__head{align-items:flex-start;gap:8px}
  .tools__list{grid-template-columns:1fr;margin-top:22px}
  .tool-card--soon{display:none}
  .tools__more{text-align:left}
}

/* ---------- 自社のサービスサイト（v3.23.0・補助金サーチZEN） ---------- */
.ssites{padding:10px 0 80px}
.ssites__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}
.ssites__head .label{margin-bottom:6px}
.ssites__title{font-size:clamp(22px,2.4vw,30px);font-weight:900}
.ssites__lead{font-size:14px;color:var(--muted);line-height:1.9}
.ssite{display:grid;grid-template-columns:minmax(0,1fr) 360px;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--white);transition:border-color .3s}
.ssite:hover{border-color:var(--blue)}
.ssite__main{position:relative;padding:40px 44px 38px;background:linear-gradient(160deg,#0b2a38 0%,#08475f 100%);color:#d6e4ec;overflow:hidden}
.ssite__main>*:not(.ssite__city){position:relative;z-index:1}
.ssite__city{position:absolute;right:0;bottom:0;width:46%;height:78%;opacity:.9;z-index:0;pointer-events:none}
.ssite__badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.ssite__badge{padding:3px 10px;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius);font-family:var(--font-head);font-weight:700;font-size:12px;color:#fff;line-height:1.6}
.ssite__badge--fill{background:#fff;border-color:#fff;color:var(--teal)}
.ssite__logo{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-family:var(--font-head);color:#fff}
.ssite__logo b{font-size:24px;font-weight:900;letter-spacing:.12em;padding-right:12px;border-right:1px solid rgba(255,255,255,.5);line-height:1}
.ssite__logo span{font-size:16px;font-weight:700;letter-spacing:.06em}
.ssite__headline{font-size:clamp(24px,2.7vw,34px);font-weight:900;line-height:1.45;color:#fff;letter-spacing:.02em}
.ssite__headline em{font-style:normal;background:linear-gradient(transparent 82%,var(--coral) 82%)}
.ssite__text{margin-top:14px;max-width:470px;font-size:14px;line-height:1.95}
.ssite__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.ssite__chips li{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;background:rgba(5,25,35,.55);border:1px solid rgba(255,255,255,.22);font-size:12.5px;color:#fff}
.ssite__chips li::before{content:"";width:9px;height:5px;border-left:2px solid var(--coral);border-bottom:2px solid var(--coral);transform:rotate(-45deg) translateY(-2px)}
.ssite__side{display:flex;flex-direction:column;gap:12px;padding:32px 30px;background:var(--sky-2)}
.ssite__side-label{font-family:var(--font-head);font-weight:700;font-size:13px;letter-spacing:.08em;color:var(--blue)}
.ssite__form{display:flex;flex-direction:column;gap:9px}
.ssite__form div{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px}
.ssite__form dt{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--ink)}
.ssite__form dt i{font-style:normal;font-size:10px;padding:0 4px;background:var(--coral);color:#fff;border-radius:var(--radius)}
.ssite__form dd{position:relative;padding:7px 28px 7px 10px;background:#fff;border:1px solid var(--rule);font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ssite__form dd::after{content:"";position:absolute;right:11px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg)}
.ssite__tags{display:flex;flex-wrap:wrap;gap:6px}
.ssite__tags span{padding:2px 8px;border:1px solid var(--rule);background:#fff;font-size:11.5px;color:var(--muted)}
.ssite__btn{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;background:var(--coral);color:#fff;font-family:var(--font-head);font-weight:700;font-size:15px;border-radius:var(--radius);transition:background .3s}
.ssite__btn .arrow{transition:transform .3s var(--ease)}
.ssite:hover .ssite__btn{background:#e0523a}
.ssite:hover .ssite__btn .arrow{transform:translateX(4px)}
@media (max-width:1000px){
  .ssite{grid-template-columns:1fr}
  .ssite__form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .ssite__form div{grid-template-columns:1fr;gap:6px}
  .ssite__btn{margin-top:6px}
}
@media (max-width:767px){
  .ssites{padding-bottom:60px}
  .ssites__head{flex-direction:column;align-items:flex-start;gap:8px}
  .ssite__main{padding:30px 22px 28px}
  .ssite__city{width:100%;opacity:.35}
  .ssite__side{display:flex;padding:24px 22px}
  .ssite__form,.ssite__tags{display:none}
  .ssite__side-label{display:none}
}
