/* =========================================================
   タカたびマーケティング stylesheet
   設計根拠: デジタル庁デザインシステム（行間1.6-1.7・字間0.02em・14px以上）
             8pxスペーシングスケール／近接の原則（外を大きく内を小さく）
             整列軸は1本（アイコンもテキストも左揃え）
             色は3系統まで／影より罫線
   ========================================================= */
:root{
  /* color — 紺・青・グレーの3系統のみ */
  --primary:#1e3a8a; --accent:#2563eb; --accent-h:#1d4ed8; --accent-soft:#eaf0fb;
  --text:#17191c; --muted:#5b6472; --line:#e4e7ec;
  --bg:#ffffff; --bg-soft:#f7f8fb; --bg-navy:#12244f; --bg-navy-d:#0b1a3d;
  /* type */
  --font-ja:"Noto Sans JP",system-ui,-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-en:"Inter","Noto Sans JP",system-ui,sans-serif;
  /* space — 8pxグリッド */
  --sp-1:4px; --sp-2:8px; --sp-3:16px; --sp-4:24px; --sp-5:32px; --sp-6:48px; --sp-7:64px; --sp-8:96px;
  --container:1120px; --radius:12px; --radius-sm:8px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--font-ja);color:var(--text);background:var(--bg);
  font-size:16px;line-height:1.7;letter-spacing:.02em;
  overflow-wrap:anywhere;word-break:normal;line-break:strict;
  font-feature-settings:"palt" 1;
}
@media(min-width:900px){body{font-size:17px}}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.4;margin:0 0 var(--sp-3);font-weight:700;letter-spacing:.01em;text-wrap:balance}
h1{font-size:28px}h2{font-size:23px}h3{font-size:18px}
@media(min-width:900px){h1{font-size:40px}h2{font-size:30px}h3{font-size:20px}}
p{margin:0 0 var(--sp-3)}
p:last-child{margin-bottom:0}
.en{font-family:var(--font-en)}
.container{max-width:var(--container);margin:0 auto;padding:0 20px}
.center{text-align:center}
.section{padding:var(--sp-6) 0}
@media(min-width:900px){.section{padding:var(--sp-8) 0}}
.section.soft{background:var(--bg-soft)}
.section.navy{background:var(--bg-navy);color:#fff}
.section.navy h2,.section.navy h3{color:#fff}
.section-stats{padding-top:var(--sp-6);padding-bottom:var(--sp-6)}
@media(min-width:900px){.section-stats{padding-top:var(--sp-7);padding-bottom:var(--sp-7)}}

/* ---------- section head ---------- */
.sec-head{margin-bottom:var(--sp-5)}
@media(min-width:900px){.sec-head{margin-bottom:var(--sp-6)}}
.sec-label{font-family:var(--font-en);font-size:13px;letter-spacing:.16em;color:var(--accent);font-weight:600;text-transform:uppercase;margin-bottom:var(--sp-2);display:flex;align-items:center;gap:10px}
.sec-head.center .sec-label{justify-content:center}
.sec-label::after{content:"";flex:0 0 32px;height:2px;background:var(--accent);opacity:.35}
.sec-head.center .sec-label::after{display:none}
.section.navy .sec-label{color:#9dbcf5}
.section.navy .sec-label::after{background:#9dbcf5}
.sec-head h2{margin-bottom:var(--sp-3)}
.sec-lead{color:var(--muted);max-width:640px;margin:0;text-wrap:balance}
.section.navy .sec-lead{color:#c9d6ee}
.center .sec-lead{margin:0 auto}
.sub-head{font-size:17px;margin:var(--sp-6) 0 var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}
@media(min-width:900px){.sub-head{font-size:19px}}

/* ---------- header ---------- */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:64px}
@media(min-width:900px){.header .container{height:76px}}
.logo{display:flex;flex-direction:column;line-height:1.15;color:var(--primary);text-decoration:none}
.logo:hover{text-decoration:none}
.logo .en{font-weight:700;font-size:17px;letter-spacing:.1em}
.logo .ja{font-size:11px;color:var(--muted);letter-spacing:.04em;margin-top:3px}
@media(min-width:900px){.logo .en{font-size:20px}.logo .ja{font-size:12px}}
.nav{display:none;align-items:center;gap:var(--sp-4)}
.nav a{color:var(--text);font-size:15px;font-weight:500;padding:6px 2px;border-bottom:2px solid transparent}
.nav a:hover{color:var(--accent);text-decoration:none;border-color:var(--accent)}
.nav a.current{color:var(--accent);border-color:var(--accent)}
@media(min-width:1000px){.nav{display:flex}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border-radius:999px;padding:12px 24px;font-weight:700;font-size:15px;line-height:1.3;transition:background .2s,color .2s,border-color .2s,transform .2s;border:2px solid transparent;cursor:pointer;text-align:center}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-h)}
.btn-outline{border-color:var(--primary);color:var(--primary);background:#fff}
.btn-outline:hover{background:var(--accent-soft)}
.btn-line{background:#06c755;color:#fff}
.btn-line:hover{background:#05b04c}
.btn-lg{padding:16px 32px;font-size:16px}
.section.navy .btn-outline{border-color:#fff;color:#fff;background:transparent}
.section.navy .btn-outline:hover{background:rgba(255,255,255,.12)}
.menu-btn{display:inline-flex;flex-direction:column;gap:5px;background:none;border:0;padding:10px;cursor:pointer}
.menu-btn span{width:24px;height:2px;background:var(--primary);display:block;border-radius:2px}
@media(min-width:1000px){.menu-btn{display:none}}
.header-cta{display:none}
@media(min-width:1000px){.header-cta{display:inline-flex}}
.mobile-nav{display:none;border-top:1px solid var(--line);background:#fff}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;padding:14px 20px;border-bottom:1px solid var(--line);color:var(--text);font-weight:500}
.mobile-nav .btn{margin:var(--sp-3) 20px;display:flex}
@media(min-width:1000px){.mobile-nav{display:none!important}}

/* ---------- hero ---------- */
.hero{position:relative;padding:var(--sp-6) 0 var(--sp-7);background:linear-gradient(165deg,#f2f6ff 0%,#ffffff 62%);overflow:hidden}
@media(min-width:900px){.hero{padding:var(--sp-8) 0}}
.hero-deco{position:absolute;top:-160px;right:-160px;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(37,99,235,.14),rgba(37,99,235,0) 68%);pointer-events:none}
.hero .container{position:relative}
.hero .grid{display:grid;gap:var(--sp-6);align-items:center}
@media(min-width:900px){.hero .grid{grid-template-columns:1.12fr .88fr;gap:var(--sp-7)}}
.hero .kicker{font-family:var(--font-en);font-size:13px;letter-spacing:.16em;color:var(--accent);font-weight:600;margin-bottom:var(--sp-3)}
.hero h1{font-size:29px;line-height:1.42;margin-bottom:var(--sp-4);letter-spacing:.005em}
@media(min-width:900px){.hero h1{font-size:43px;line-height:1.38}}
.hero h1 .ph{display:inline-block}
.hero .lead{font-size:16px;color:#3d4653;max-width:600px;margin-bottom:var(--sp-5)}
@media(min-width:900px){.hero .lead{font-size:17px}}
.hero .actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.hero-visual{border-radius:16px;background:#fff;border:1px solid var(--line);padding:var(--sp-4)}
@media(min-width:900px){.hero-visual{padding:var(--sp-5)}}
.hv-head{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.04em;padding-bottom:var(--sp-3);border-bottom:2px solid var(--accent-soft);margin-bottom:var(--sp-1)}
.hero-visual .row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:16px 0;border-bottom:1px solid var(--line)}
.hero-visual .row:last-of-type{border-bottom:0}
.hero-visual .k{font-size:14.5px;color:var(--muted);word-break:keep-all;font-weight:500}
.hero-visual .v{font-family:var(--font-en);font-weight:700;font-size:26px;color:var(--primary);white-space:nowrap;letter-spacing:0}
.hero-visual .v.sm{font-size:15px;font-family:var(--font-ja)}
.hero-visual .v small{font-size:13px;color:var(--muted);font-weight:500;margin-left:4px;font-family:var(--font-ja)}
.hero-visual .cap{font-size:13px;line-height:1.6;color:var(--muted);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line);text-wrap:balance}

/* ---------- stats ---------- */
.stats{display:grid;gap:var(--sp-3)}
@media(min-width:760px){.stats{grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);
  display:flex;flex-direction:column;border-top:3px solid var(--accent)}
.stat .num{font-family:var(--font-en);font-size:38px;font-weight:700;color:var(--primary);line-height:1.05;letter-spacing:0}
@media(min-width:900px){.stat .num{font-size:44px}}
.stat .label{font-weight:700;margin-top:var(--sp-2);font-size:16px;word-break:keep-all;overflow-wrap:anywhere}
.stat .note{font-size:13px;line-height:1.6;color:var(--muted);margin-top:var(--sp-1);
  text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}
.stats-note{font-size:13px;color:var(--muted);margin:var(--sp-4) 0 0;text-align:right}

/* ---------- voices（お悩みの吹き出し） ---------- */
.voices{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:var(--sp-4)}
.vrow{display:grid;grid-template-columns:72px 1fr;gap:var(--sp-3);align-items:center}
.avatar{width:72px;height:72px;border-radius:50%;background:var(--accent-soft);color:var(--primary);
  display:flex;align-items:center;justify-content:center;border:1px solid #d6e1f7}
.avatar svg{width:46px;height:46px}
.bubble{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:18px 22px;font-size:15.5px;font-weight:500;line-height:1.7;text-wrap:pretty}
@media(min-width:900px){.bubble{font-size:16.5px;padding:20px 26px}}
.bubble::before,.bubble::after{content:"";position:absolute;top:50%;margin-top:-9px;border:9px solid transparent;width:0;height:0}
.vrow.l .bubble::before{left:-19px;border-right-color:var(--line)}
.vrow.l .bubble::after{left:-17px;border-right-color:#fff}
@media(min-width:760px){
  .vrow.l{margin-right:11%}
  .vrow.r{margin-left:11%;grid-template-columns:1fr 72px}
  .vrow.r .avatar{order:2}
  .vrow.r .bubble{order:1}
  .vrow.r .bubble::before{right:-19px;border-left-color:var(--line)}
  .vrow.r .bubble::after{right:-17px;border-left-color:#fff}
}
@media(max-width:759px){
  .avatar{width:56px;height:56px}
  .avatar svg{width:36px;height:36px}
  .vrow{grid-template-columns:56px 1fr;gap:12px}
  .vrow.r .bubble::before{left:-19px;border-right-color:var(--line);right:auto}
  .vrow.r .bubble::after{left:-17px;border-right-color:#fff;right:auto}
}

/* ---------- cards ---------- */
.cards{display:grid;gap:var(--sp-4)}
@media(min-width:760px){.cards.c2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.cards.c3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:760px) and (max-width:899px){.cards.c3{grid-template-columns:repeat(2,1fr)}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);display:flex;flex-direction:column}
@media(min-width:900px){.card{padding:var(--sp-5)}}
.svc{color:var(--text);transition:border-color .2s,transform .2s}
.svc:hover{text-decoration:none;border-color:var(--accent);transform:translateY(-3px)}
.card .icon{width:56px;height:56px;border-radius:14px;background:var(--accent-soft);color:var(--primary);
  display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-4)}
.card .icon svg{width:30px;height:30px}
.card h3{margin-bottom:var(--sp-2)}
.card p{color:#3d4653;font-size:15px;line-height:1.75;margin-bottom:var(--sp-3)}
.card .more{margin-top:auto;font-weight:700;font-size:15px;color:var(--accent);display:inline-flex;align-items:center;gap:6px}
.card .more svg{width:17px;height:17px;transition:transform .2s}
.svc:hover .more svg{transform:translateX(4px)}
.textlink{font-weight:700;display:inline-flex;align-items:center;gap:6px}
.textlink svg{width:17px;height:17px}

/* ---------- reasons (navy) ---------- */
.reasons{display:grid;gap:var(--sp-4)}
@media(min-width:820px){.reasons{grid-template-columns:repeat(2,1fr)}}
.reason{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);display:flex;flex-direction:column}
@media(min-width:900px){.reason{padding:var(--sp-5)}}
.reason .n{font-family:var(--font-en);color:#9dbcf5;font-weight:700;font-size:28px;line-height:1;margin-bottom:var(--sp-3);opacity:.85}
.reason h3{font-size:18px;margin-bottom:var(--sp-2)}
@media(min-width:900px){.reason h3{font-size:19px}}
.reason p{color:#c9d6ee;font-size:15px;line-height:1.8;margin:0}

/* ---------- works ---------- */
.work{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);display:flex;flex-direction:column}
@media(min-width:900px){.work{padding:var(--sp-5)}}
.work-meta{display:inline-block;align-self:flex-start;font-size:12.5px;font-weight:600;color:var(--accent);
  background:var(--accent-soft);border-radius:999px;padding:4px 12px;margin-bottom:var(--sp-3)}
.work h3{margin-bottom:var(--sp-1);font-size:19px}
.work-sub{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:var(--sp-4)}
.ba{margin-bottom:var(--sp-4)}
.ba-label{font-size:12.5px;font-weight:700;color:var(--muted);letter-spacing:.04em;margin-bottom:var(--sp-2)}
.ba-row{display:grid;grid-template-columns:1fr 30px 1fr;align-items:stretch;gap:var(--sp-2)}
.ba-row .b,.ba-row .a{display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:52px;padding:8px 10px;border-radius:var(--radius-sm);font-size:15px;line-height:1.35;
  text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}
.ba-row .b{background:var(--bg-soft);color:var(--muted);border:1px solid var(--line)}
.ba-row .a{background:var(--accent-soft);color:var(--primary);font-weight:700}
.ba-row .arrow{display:flex;align-items:center;justify-content:center;color:var(--accent)}
.ba-row .arrow svg{width:20px;height:20px}
.work-sum{font-size:15px;line-height:1.8;color:#3d4653;margin-bottom:var(--sp-3)}
.work ul{padding-left:1.25em;font-size:14.5px;line-height:1.8;color:#3d4653;margin:0 0 var(--sp-3)}
.work li{margin-bottom:var(--sp-1)}
.work .consent{margin-top:auto;font-size:12.5px;line-height:1.6;color:var(--muted);padding-top:var(--sp-3);border-top:1px solid var(--line)}

/* ---------- steps ---------- */
.steps{display:grid;gap:var(--sp-3)}
@media(min-width:900px){.steps{grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}}
.step{background:#fff;border:1px solid var(--line);border-top:3px solid var(--accent-soft);border-radius:var(--radius);padding:var(--sp-4);display:flex;flex-direction:column}
.step .n{font-family:var(--font-en);color:var(--accent);font-weight:700;font-size:26px;line-height:1;margin-bottom:var(--sp-2);opacity:.55}
.step h3{font-size:17px;margin-bottom:var(--sp-2)}
.step p{font-size:14.5px;line-height:1.75;color:#3d4653;margin:0}

/* ---------- media / photos / sns / articles ---------- */
.sns-grid{display:grid;gap:var(--sp-2);grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.sns-grid{grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}}
.sns{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;color:var(--text);transition:border-color .2s,transform .2s}
.sns:hover{text-decoration:none;border-color:var(--accent);transform:translateY(-2px)}
.sns .ic{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--primary);flex:none}
.sns .ic svg{width:20px;height:20px}
.sns .tx{display:flex;flex-direction:column;min-width:0}
.sns .t{font-weight:700;font-size:14.5px;line-height:1.35}
.sns .s{font-size:12.5px;color:var(--muted);line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
.arts{display:grid;gap:var(--sp-3)}
@media(min-width:900px){.arts{grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}}
.art{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--sp-4);color:var(--text);transition:border-color .2s,transform .2s,box-shadow .2s}
.art:hover{text-decoration:none;border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px rgba(30,58,138,.09)}
.art-top{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3)}
.art-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--primary);
  background:var(--accent-soft);border-radius:999px;padding:4px 10px;font-family:var(--font-en)}
.art-badge svg{width:14px;height:14px}
.art-stat{font-size:12.5px;font-weight:700;color:var(--accent)}
.art-title{font-size:16px;line-height:1.6;margin-bottom:var(--sp-2);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.art-hook{font-size:14px;line-height:1.75;color:var(--muted);margin-bottom:var(--sp-4);
  ;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.art-cta{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:2px solid var(--accent);color:var(--accent);border-radius:999px;padding:10px 18px;font-weight:700;font-size:14.5px;transition:background .2s,color .2s}
.art-cta svg{width:17px;height:17px;transition:transform .2s}
.art:hover .art-cta{background:var(--accent);color:#fff}
.art:hover .art-cta svg{transform:translateX(4px)}

/* ---------- faq ---------- */
.faq{max-width:840px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:var(--sp-2)}
.faq details[open]{border-color:var(--accent)}
.faq summary{cursor:pointer;padding:18px 52px 18px 20px;font-weight:700;list-style:none;position:relative;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:22px;top:26px;width:10px;height:10px;
  border:2px solid var(--accent);border-top:0;border-left:0;transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(225deg);top:30px}
.faq .a{padding:0 20px 20px;color:#3d4653;font-size:15px;line-height:1.85}

/* ---------- news ---------- */
.news-list{list-style:none;margin:0;padding:0}
.news-list li{display:grid;grid-template-columns:auto auto 1fr;gap:var(--sp-2) var(--sp-3);align-items:center;padding:var(--sp-3) 0;border-bottom:1px solid var(--line)}
@media(max-width:759px){.news-list li{grid-template-columns:auto auto}.news-list li .t{grid-column:1/3}}
.news-list .d{font-family:var(--font-en);color:var(--muted);font-size:14px}
.news-list .c{font-size:12px;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 12px;font-weight:700;white-space:nowrap}
.news-list .t{font-weight:500;line-height:1.6}
.news-body{max-width:840px;margin:0 auto}
.news-item{padding:var(--sp-5) 0;border-bottom:1px solid var(--line)}
.news-item:first-child{padding-top:0}
.news-item h2{font-size:20px;margin:var(--sp-2) 0 var(--sp-3)}
.news-item .news-list{display:flex;gap:var(--sp-3);align-items:center}

/* ---------- table ---------- */
.tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.tbl th,.tbl td{padding:18px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:15px;line-height:1.8}
.tbl th{width:30%;background:var(--bg-soft);font-weight:700;color:var(--primary);word-break:keep-all}
.tbl tr:last-child th,.tbl tr:last-child td{border-bottom:0}
.tbl-wrap{overflow-x:auto}

/* ---------- profile / message ---------- */
.profiles{display:grid;gap:var(--sp-4)}
@media(min-width:820px){.profiles{grid-template-columns:repeat(2,1fr)}}
.profile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4)}
@media(min-width:900px){.profile{padding:var(--sp-5)}}
.profile .mark{width:60px;height:60px;border-radius:50%;background:linear-gradient(140deg,var(--primary),var(--accent));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px;margin-bottom:var(--sp-4)}
.profile .role{font-size:13px;color:var(--accent);font-weight:700;letter-spacing:.04em}
.profile h3{margin:var(--sp-1) 0 var(--sp-1)}
.profile .sub{font-size:14px;color:var(--muted);margin-bottom:var(--sp-3);line-height:1.6}
.profile p{font-size:15px;line-height:1.85;color:#3d4653;margin:0}
.message{max-width:840px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4)}
@media(min-width:900px){.message{padding:var(--sp-7) var(--sp-6)}}
.message p{font-size:16px;line-height:1.95}
.message .sec-label{margin-bottom:var(--sp-3)}

/* ---------- cta ---------- */
.cta-box{background:linear-gradient(150deg,var(--bg-navy) 0%,var(--bg-navy-d) 100%);color:#fff;border-radius:20px;padding:var(--sp-6) var(--sp-4);text-align:center}
@media(min-width:900px){.cta-box{padding:var(--sp-8) var(--sp-6)}}
.cta-box h2{color:#fff;margin-bottom:var(--sp-3)}
.cta-box p{color:#c9d6ee;max-width:620px;margin:0 auto var(--sp-5);text-wrap:balance}
.cta-box .actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center}
.cta-box .btn-outline{border-color:#fff;color:#fff;background:transparent}
.cta-box .btn-outline:hover{background:rgba(255,255,255,.12)}

/* ---------- form ---------- */
.form{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4)}
@media(min-width:900px){.form{padding:var(--sp-6)}}
.field{margin-bottom:var(--sp-4)}
.field label{display:block;font-weight:700;margin-bottom:var(--sp-2);font-size:15px}
.field .req{color:#c02626;font-size:12px;margin-left:6px;font-weight:700}
.field input,.field select,.field textarea{width:100%;border:1px solid #c3cad6;border-radius:var(--radius-sm);padding:13px 14px;font-size:16px;font-family:inherit;background:#fff;color:var(--text)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.field textarea{min-height:160px;resize:vertical;line-height:1.7}
.field .hint{font-size:13px;color:var(--muted);margin-top:var(--sp-1);line-height:1.6}
.form .consent{font-size:14.5px;color:#3d4653}
.alt-box{max-width:760px;margin:var(--sp-4) auto 0;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);text-align:center}
.alt-box p{margin-bottom:var(--sp-3);font-size:15px;line-height:1.8}

/* ---------- footer ---------- */
.footer{background:var(--bg-navy-d);color:#c0cadd;padding:var(--sp-7) 0 var(--sp-4);font-size:14px;line-height:1.8}
.footer .grid{display:grid;gap:var(--sp-5)}
@media(min-width:900px){.footer .grid{grid-template-columns:1.7fr 1fr 1fr 1fr;gap:var(--sp-6)}}
.footer .logo{color:#fff;margin-bottom:var(--sp-3)}
.footer .logo .ja{color:#8d9bb5}
.footer h4{color:#fff;font-size:14px;margin:0 0 var(--sp-3);letter-spacing:.06em;padding-bottom:var(--sp-2);border-bottom:1px solid rgba(255,255,255,.14)}
.footer ul{list-style:none;margin:0;padding:0}
.footer li{margin-bottom:10px}
.footer a{color:#c0cadd}
.footer a:hover{color:#fff}
.footer .desc{color:#93a1ba;font-size:13.5px;line-height:1.85;max-width:440px;margin-bottom:var(--sp-3)}
.footer .desc:last-child{margin-bottom:0}
.footer .bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:var(--sp-6);padding-top:var(--sp-4);display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:space-between;font-size:12.5px;color:#8d9bb5}

/* ---------- page head / prose ---------- */
.page-head{background:var(--bg-soft);padding:var(--sp-6) 0;border-bottom:1px solid var(--line)}
@media(min-width:900px){.page-head{padding:var(--sp-7) 0}}
.page-head .en{font-family:var(--font-en);font-size:13px;letter-spacing:.16em;color:var(--accent);font-weight:600;margin-bottom:var(--sp-2)}
.page-head h1{margin-bottom:0}
.page-head p{color:var(--muted);margin:var(--sp-3) 0 0;max-width:680px;text-wrap:balance}
.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:var(--sp-3)}
.breadcrumb a{color:var(--muted)}
.prose{max-width:840px;margin:0 auto}
.prose h2{font-size:20px;margin-top:var(--sp-6);padding-bottom:var(--sp-2);border-bottom:2px solid var(--line)}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:17px;margin-top:var(--sp-4)}
.prose ul{padding-left:1.3em}
.prose li{margin-bottom:var(--sp-1)}
.note{font-size:13px;line-height:1.7;color:var(--muted)}

/* ---------- service detail ---------- */
.service-detail{display:grid;gap:var(--sp-4);padding:var(--sp-6) 0;border-bottom:1px solid var(--line)}
@media(min-width:900px){.service-detail{grid-template-columns:1fr 1.45fr;gap:var(--sp-7);padding:var(--sp-7) 0}}
.service-detail:first-of-type{padding-top:0}
.service-detail:last-child{border-bottom:0;padding-bottom:0}
.service-detail .sd-icon{width:56px;height:56px;border-radius:14px;background:var(--accent-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3)}
.service-detail .sd-icon svg{width:30px;height:30px}
.service-detail .who{font-size:13.5px;color:var(--accent);font-weight:700;margin-bottom:var(--sp-2)}
.service-detail h2{font-size:23px;margin-bottom:var(--sp-3)}
@media(min-width:900px){.service-detail h2{font-size:26px}}
.service-detail .lead{color:#3d4653;font-size:15.5px;line-height:1.9}
.service-detail h3{font-size:15px;margin:var(--sp-5) 0 var(--sp-2);color:var(--primary);letter-spacing:.04em}
.service-detail h3:first-child{margin-top:0}
.service-detail ul{padding-left:1.25em;font-size:15px;line-height:1.85;color:#3d4653;margin:0}
.service-detail li{margin-bottom:var(--sp-1)}
.service-detail .flow{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.service-detail .flow span{background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:14px;font-weight:500;white-space:nowrap}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .btn:hover,.svc:hover,.sns:hover,.art:hover{transform:none}
  html{scroll-behavior:auto}
}

.nb{white-space:nowrap}
.work ul li{text-wrap:pretty}
.art-title{text-wrap:pretty}

/* ── 最終行の孤立を防ぐ（本文のみ。auto-phraseは併用しない＝行が痩せるため） ── */
.card p,.reason p,.work-sum,.step p,.art-hook,.profile p,.message p,
.faq .a,.hero .lead,.service-detail .lead,.footer .desc,.alt-box p,
.cta-box p,.page-head p,.prose p,.tbl td,.work ul li,.problem .ptxt{text-wrap:pretty}
/* ── 短いリード・見出しは文節で折る（2〜3行なので痩せが出ない） ── */
.sec-lead,.sub-head,h1,h2,h3{word-break:auto-phrase}

/* 媒体名は「地域情報メディア」と「タカたび」の境目でだけ折る */
.kw{word-break:keep-all;overflow-wrap:anywhere}
.h1br{display:block}

/* ---------- compare（運用代行 と 内製化の対比図） ---------- */
.compare{display:grid;gap:var(--sp-4)}
@media(min-width:900px){.compare{grid-template-columns:repeat(2,1fr)}}
.cmp{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);background:#fff;display:flex;flex-direction:column}
@media(min-width:900px){.cmp{padding:var(--sp-5)}}
.cmp-x{background:var(--bg-soft)}
.cmp-o{border-color:#c3d3f2;border-top:3px solid var(--accent)}
.cmp-head{display:flex;align-items:center;gap:12px;margin-bottom:var(--sp-4)}
.cmp-head h3{margin:0;font-size:17px}
@media(min-width:900px){.cmp-head h3{font-size:19px}}
.cmp-mark{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}
.cmp-x .cmp-mark{background:#f1f3f7;color:#8b95a5;border:1px solid #d3d9e3}
.cmp-o .cmp-mark{background:var(--accent-soft);color:var(--accent)}
.cmp-fig{width:100%;height:auto;margin-bottom:var(--sp-4)}
.cmp ul{margin:0;padding-left:1.25em;font-size:15px;line-height:1.85;color:#3d4653}
.cmp-x ul{color:var(--muted)}
.cmp li{margin-bottom:var(--sp-1)}

/* ---------- mission / vision / value ---------- */
.mvv{display:grid;gap:var(--sp-4);max-width:980px;margin:0 auto}
@media(min-width:900px){.mvv{grid-template-columns:repeat(2,1fr);gap:var(--sp-5)}}
.mvv-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4)}
@media(min-width:900px){.mvv-item{padding:var(--sp-5)}}
.mvv-label{font-family:var(--font-en);font-size:12.5px;letter-spacing:.16em;color:var(--accent);font-weight:600;text-transform:uppercase;margin-bottom:var(--sp-2)}
.mvv-item h3{font-size:18px;margin-bottom:var(--sp-3)}
@media(min-width:900px){.mvv-item h3{font-size:20px}}
.mvv-item p{font-size:15px;line-height:1.9;color:#3d4653;margin:0;text-wrap:pretty}
.mvv-list{margin:0;padding-left:1.3em;font-size:15px;line-height:1.9;color:#3d4653}
.mvv-list li{margin-bottom:var(--sp-3)}
.mvv-list li:last-child{margin-bottom:0}
.mvv-list b{color:var(--primary);display:block}
.voices-note{max-width:880px;margin:var(--sp-5) auto 0;font-size:14px;color:var(--muted);text-align:center;text-wrap:balance}

/* ---------- value ---------- */
.values{display:grid;gap:var(--sp-4);max-width:1040px;margin:0 auto}
@media(min-width:900px){.values{grid-template-columns:repeat(3,1fr)}}
.value-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);display:flex;flex-direction:column}
.value-n{font-family:var(--font-en);font-size:30px;font-weight:700;color:var(--accent);opacity:.45;line-height:1;margin-bottom:var(--sp-3)}
.value-item h3{font-size:17px;line-height:1.55;margin-bottom:var(--sp-3)}
@media(min-width:900px){.value-item h3{font-size:18px}}
.value-item p{font-size:14.5px;line-height:1.9;color:#3d4653;margin:0;text-wrap:pretty}
.mvv-foot{margin-top:var(--sp-3)!important;font-size:14px!important;color:var(--muted)!important}
.mvv-list b{font-weight:700}

/* ---------- PR実績 / 自治体・地域 ---------- */
.pr-grid{display:grid;gap:var(--sp-3);grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.pr-grid{grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}}
.pr-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);
  display:flex;flex-direction:column;justify-content:center;min-height:150px;border-top:3px solid var(--accent-soft)}
.pr-cat{display:inline-block;align-self:flex-start;font-size:12px;font-weight:700;color:var(--accent);
  background:var(--accent-soft);border-radius:999px;padding:4px 12px;margin-bottom:var(--sp-3)}
.pr-name{font-weight:700;font-size:15.5px;line-height:1.55;text-wrap:pretty}
.pr-area{font-size:13px;color:var(--muted);margin-top:6px}
.civic-grid{display:grid;gap:var(--sp-3)}
@media(min-width:900px){.civic-grid{grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}}
.civic-item{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);
  border-left:4px solid var(--accent)}
.civic-item h3{font-size:17px;margin-bottom:var(--sp-2);line-height:1.5}
.civic-item p{font-size:14.5px;line-height:1.85;color:#3d4653;margin:0;text-wrap:pretty}
