:root{
  /* 協力会社募集サイト（meisho-partner）と同じ配色。片方を変えたら、もう片方も揃える */
  --ink:#12263f;
  --muted:#56687c;
  --brand:#0b4f8f;
  --brand-deep:#073763;
  --brand-soft:#e9f0f7;
  --brand-pale:#9fc6ea;
  --surface:#f5f8fb;
  --sky:#eef6fc;
  --line:#d3dee8;
  --danger:#b91c1c; /* フォームの入力エラー */
  --flag:#9a5b00; /* ステージング（確認用）の帯。協力会社サイトと同じ */
  --bg:#fff;
  --on-dark:#fff;
  --on-dark-muted:rgba(255,255,255,.82);
  --on-dark-line:rgba(255,255,255,.2);
  --shadow:0 2px 12px rgba(11,79,143,.07);
  --shadow-hover:0 8px 24px rgba(11,79,143,.14);
  --gate-veil:linear-gradient(180deg,rgba(7,55,99,.15) 0%,rgba(7,55,99,.88) 78%);
  --gate-veil-2:linear-gradient(180deg,rgba(11,79,143,.10) 0%,rgba(11,79,143,.88) 78%);
  --page-veil:linear-gradient(100deg,rgba(7,55,99,.92) 0%,rgba(7,55,99,.78) 45%,rgba(11,79,143,.55) 100%);
  --hero-veil:linear-gradient(180deg,rgba(7,55,99,0) 55%,rgba(7,55,99,.35) 100%);
  --pv-stage:#5b6b7c; /* プレビュー用ツールバー専用 */
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media(min-width:768px){html{font-size:17px}}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic","Meiryo",system-ui,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.9;-webkit-font-smoothing:antialiased;
}
h1,h2,h3{line-height:1.45;font-weight:700;letter-spacing:.01em}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
ul{list-style:none}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.wrap{max-width:1120px;margin:0 auto;padding:0 20px;width:100%}
@media(max-width:639px){.wrap{padding:0 16px}}
.sec{padding:56px 0}
@media(min-width:768px){.sec{padding:80px 0}}
.sec--sky{background:var(--surface)}

/* 見出し：左の縦棒（協力会社募集サイトと共通） */
.h2{font-size:1.375rem;border-left:4px solid var(--brand);padding-left:16px;color:var(--ink)}
@media(min-width:768px){.h2{font-size:1.75rem}}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 28px;border-radius:6px;font-weight:700;text-decoration:none;
  transition:background-color .15s,color .15s,box-shadow .15s;
}
.btn--primary{background:var(--brand);color:var(--on-dark)}
.btn--primary:hover{background:var(--brand-deep)}
.btn--ghost{background:var(--bg);color:var(--brand);border:1px solid var(--brand)}
.btn--ghost:hover{background:var(--brand-soft)}
.btn svg{width:20px;height:20px;flex:0 0 auto}

/* ---------- header ---------- */
.hdr{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.hdr__top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px;padding-bottom:10px}
.hdr__logo{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.hdr__logo a{display:block}
.hdr__logo img{width:117px}
.hdr__tag{padding:3px 8px;border:1px solid var(--line);color:var(--ink);font-size:.6875rem;line-height:1.4;word-break:keep-all}
@media(min-width:1024px){.hdr__logo img{width:160px}.hdr__tag{padding:4px 10px;font-size:.8125rem}}
.hdr__acts{display:none}
@media(min-width:1024px){
  .hdr__acts{display:flex;align-items:center;gap:20px}
}
.hdr__tel{text-align:right;line-height:1.3}
.hdr__tel .label{display:block;font-size:.72rem;color:var(--muted)}
.hdr__tel .number{display:inline-flex;align-items:center;gap:6px;font-size:1.5rem;font-weight:700;color:var(--brand-deep);letter-spacing:.02em;text-decoration:none}
.hdr__tel .number svg{width:20px;height:20px;color:var(--brand)}
.hdr__contact{padding:10px 18px;font-size:.88rem}

/* スマホ：電話・メニューボタン */
.hdr__sp{display:flex;align-items:center;gap:8px}
@media(min-width:1024px){.hdr__sp{display:none}}
.hdr__sp a,.hdr__sp button{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  width:52px;height:52px;border-radius:8px;border:0;font:inherit;font-size:.62rem;font-weight:700;cursor:pointer;text-decoration:none;
}
.hdr__sp a{background:var(--brand-soft);color:var(--brand)}
.hdr__sp button{background:var(--brand);color:var(--on-dark)}
.hdr__sp svg{width:22px;height:22px}

/* グローバルメニュー */
.gnav{display:none;border-top:1px solid var(--line);background:var(--bg)}
.gnav.is-open{display:block;max-height:calc(100vh - 73px);overflow-y:auto}
.gnav > .wrap > ul > li{border-bottom:1px solid var(--line)}
.gnav a{display:block;text-decoration:none;font-weight:500}
.gnav > .wrap > ul > li > a{padding:14px 4px;font-weight:700}
.gnav .sub-menu{padding:0 0 12px 12px}
.gnav .sub-menu a{padding:6px 4px;font-size:.94rem;color:var(--muted)}
.gnav .sub-menu .sub-menu{padding:0 0 0 16px}
.gnav .sub-menu .sub-menu a{font-size:.88rem}
.gnav__sp-tel{padding:16px 0 20px;display:grid;gap:10px}
.gnav__sp-tel .btn{width:100%}
.gnav__sp-tel p{font-size:.82rem;color:var(--muted);text-align:center}
@media(min-width:1024px){
  .gnav{display:block}
  .gnav__sp-tel{display:none}
  .gnav > .wrap > ul{display:flex;justify-content:flex-end}
  .gnav > .wrap > ul > li{border:0;position:relative}
  .gnav > .wrap > ul > li > a{padding:12px 18px;font-size:.94rem;font-weight:500;position:relative}
  .gnav > .wrap > ul > li > a::after{
    content:"";position:absolute;left:18px;right:18px;bottom:6px;height:2px;background:var(--brand);
    transform:scaleX(0);transition:transform .15s;
  }
  .gnav > .wrap > ul > li:hover > a::after,.gnav > .wrap > ul > li:focus-within > a::after,
  .gnav .current > a::after{transform:scaleX(1)}
  .gnav > .wrap > ul > li:hover > a,.gnav .current > a{color:var(--brand)}
  .gnav .has-sub > a{padding-right:30px}
  .gnav .has-sub > a::before{
    content:"";position:absolute;right:14px;top:50%;width:6px;height:6px;margin-top:-5px;
    border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.6;
  }
  .gnav .sub-menu{
    position:absolute;top:100%;left:0;min-width:240px;padding:8px 0;
    background:var(--bg);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:0 0 8px 8px;
    box-shadow:var(--shadow-hover);visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;
  }
  .gnav li:hover > .sub-menu,.gnav li:focus-within > .sub-menu{visibility:visible;opacity:1}
  .gnav .sub-menu a{padding:8px 20px;color:var(--ink);font-size:.88rem}
  .gnav .sub-menu a:hover{background:var(--brand-soft);color:var(--brand)}
  .gnav .sub-menu .sub-menu{position:static;visibility:inherit;opacity:1;box-shadow:none;border:0;padding:0 0 4px 16px;min-width:0}
  .gnav .sub-menu .sub-menu a{font-size:.82rem;color:var(--muted)}
}

/* ---------- top photo ---------- */
.hero{position:relative;background:var(--sky)}
.hero__img{position:relative;height:56vw;max-height:620px;min-height:240px;overflow:hidden}
@media(min-width:1024px){.hero__img{height:520px}}
.hero__img img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.04);transition:opacity 1.8s ease,transform 7s ease-out;
}
.hero__img img.is-active{opacity:1;transform:scale(1)}
@media (prefers-reduced-motion:reduce){.hero__img img{transform:none}}
.hero__img::after{content:"";position:absolute;inset:0;background:var(--hero-veil);z-index:1}
/* 写真ごとの見せたい位置 */
.hero__img img[data-k="a"]{object-position:50% 70%}
.hero__img img[data-k="w"]{object-position:50% 40%}
.hero__img img[data-k="e"]{object-position:50% 60%}
.hero__img img[data-k="f"]{object-position:50% 55%}
/* 何枚目かを示すドット */
.hero__dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:2;display:flex;gap:8px}
.hero__dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;transition:background-color .2s,width .2s}
.hero__dots button[aria-current="true"]{background:var(--on-dark);width:24px;border-radius:5px}
@media(min-width:768px){.hero__dots{bottom:auto;top:20px;left:auto;right:24px;transform:none}}

/* ---------- 3 boxes（私達の想い／会社概要／品質・環境方針） ---------- */
.intro{position:relative;z-index:2;padding-bottom:56px}
.intro__grid{display:grid;gap:16px;margin-top:-40px}
@media(min-width:768px){.intro__grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:-72px}.intro{padding-bottom:80px}}
.intro__box a{
  display:flex;flex-direction:column;height:100%;text-decoration:none;overflow:hidden;
  background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);
  transition:box-shadow .15s,border-color .15s,transform .15s;
}
.intro__box a:hover{border-color:var(--brand);box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.intro__box .headline{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:18px 22px 0;font-size:1.25rem;color:var(--brand-deep);
}
.intro__box .headline::after{
  content:"";flex:0 0 28px;height:28px;border-radius:50%;
  background:var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b4f8f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center/14px no-repeat;
}
.intro__box .image{order:-1;aspect-ratio:380/110;background:var(--brand-deep);overflow:hidden}
.intro__box .image img{width:100%;height:100%;object-fit:cover}
.intro__box .desc{padding:10px 22px 22px;font-size:.94rem;color:var(--ink)}

/* ---------- 既存トップのお知らせ・ご案内（index_content1_bottom） ---------- */
.notes{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.notes > *,.notes__2col > *{min-width:0}
.card{background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:24px}
@media(min-width:768px){.card{padding:32px 36px}}
.card p{font-size:.97rem}
.card__ttl{font-size:1.125rem;font-weight:700;color:var(--brand-deep);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.card__ttl::before{content:"";flex:0 0 4px;align-self:stretch;background:var(--brand);border-radius:2px}
.card__fig{display:flex;justify-content:center;margin-bottom:16px}
.card__fig img{border-radius:6px}

.welcome{background:linear-gradient(135deg,var(--sky) 0%,var(--bg) 70%);border-color:var(--brand-soft)}
.welcome__lead{font-size:1.125rem;font-weight:700;color:var(--brand-deep);line-height:1.7}
@media(min-width:768px){.welcome__lead{font-size:1.375rem}}
.welcome__lead + p{margin-top:8px}
.welcome__info{margin-top:20px;display:grid;gap:8px}
.welcome__info p{
  display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;
  padding:10px 16px;background:var(--bg);border:1px solid var(--line);border-radius:6px;font-size:.94rem;
}
.welcome__info b{color:var(--brand);flex:0 0 auto}

.notes__2col{display:grid;gap:24px}
@media(min-width:900px){.notes__2col{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat-list{margin-top:12px;display:grid;gap:6px}
.stat-list li{display:flex;flex-wrap:wrap;gap:4px 12px;padding:8px 14px;border-radius:6px;background:var(--surface);font-size:.94rem}
.stat-list li b{color:var(--brand-deep)}
.join-tag{
  margin-top:14px;display:inline-block;padding:8px 16px;border-radius:8px;
  background:var(--brand);color:var(--on-dark);font-weight:700;font-size:.94rem;
}

.community__list{display:grid;gap:0;margin-top:4px;border-top:1px solid var(--line)}
.community__list li{display:grid;gap:2px 20px;padding:12px 4px;border-bottom:1px solid var(--line);font-size:.94rem}
@media(min-width:768px){.community__list li{grid-template-columns:15em 1fr}}
.community__list time{font-weight:700;color:var(--brand)}
.community__list a,.bt a{color:var(--brand);font-weight:700}

.bt{display:grid;gap:20px;align-items:center}
@media(min-width:768px){.bt{grid-template-columns:200px 1fr;gap:32px}}
.bt img{width:200px;margin:0 auto}

.iso{background:var(--brand-deep);border-color:var(--brand-deep);color:var(--on-dark)}
.iso .card__ttl{color:var(--on-dark)}
.iso .card__ttl::before{background:var(--brand-pale)}
.iso__list{display:grid;gap:10px;margin-top:8px}
@media(min-width:640px){.iso__list{grid-template-columns:repeat(2,1fr)}}
.iso__list li{
  padding:12px 16px;border:1px solid var(--on-dark-line);border-radius:6px;background:rgba(255,255,255,.06);
  font-weight:700;font-size:.94rem;
}
.iso__ppp{margin-top:20px;padding-top:16px;border-top:1px solid var(--on-dark-line);color:var(--on-dark-muted)}

/* ---------- サービス内容 ---------- */
.svc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px}
.svc-head .btn{padding:10px 20px;font-size:.88rem}
.svc{display:grid;gap:16px}
@media(min-width:640px){.svc{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.svc{grid-template-columns:repeat(3,1fr);gap:24px}}
@media(min-width:1100px){.svc{grid-template-columns:repeat(5,1fr);gap:16px}}
.svc a{
  display:flex;flex-direction:column;height:100%;text-decoration:none;overflow:hidden;
  background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);
  transition:box-shadow .15s,border-color .15s,transform .15s;
}
.svc a:hover{border-color:var(--brand);box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.svc .image{aspect-ratio:1/1;overflow:hidden;background:var(--brand-soft)}
.svc .image img{width:100%;height:100%;object-fit:cover}
@media(min-width:640px) and (max-width:1099px){.svc .image{aspect-ratio:16/10}}
/* スマホ：写真を左、文字を右に並べる（元画像が200px程度と小さいため、大きく引き伸ばさない） */
@media(max-width:639px){
  .svc a{display:grid;grid-template-columns:104px 1fr;grid-template-rows:auto 1fr}
  .svc .image{grid-row:1/3;aspect-ratio:auto;height:100%;min-height:104px}
  .svc .title{padding:14px 16px 0}
  .svc .desc{padding:8px 16px 14px}
}
.svc .title{padding:16px 18px 0;font-size:1.0625rem;font-weight:700;color:var(--brand-deep);line-height:1.5}
.svc .title::after{content:"";display:block;width:24px;height:3px;background:var(--brand);border-radius:2px;margin-top:8px}
.svc .desc{padding:10px 18px 18px;font-size:.86rem;line-height:1.8}

/* ---------- 協力会社・お問い合わせボタン ---------- */
.info-image{display:flex;justify-content:center;margin-bottom:24px}
.info-btns{display:grid;gap:16px}
@media(min-width:768px){.info-btns{grid-template-columns:1fr 1fr;gap:24px}}
.info-btns a{
  display:flex;align-items:center;justify-content:center;gap:14px;min-height:96px;padding:20px;
  border-radius:10px;text-decoration:none;font-size:1.125rem;font-weight:700;
  transition:background-color .15s,box-shadow .15s;
}
@media(min-width:768px){.info-btns a{font-size:1.25rem;min-height:120px}}
.info-btns svg{width:32px;height:32px;flex:0 0 auto}
.info-btns .button1 a{background:var(--bg);color:var(--brand-deep);border:2px solid var(--brand)}
.info-btns .button1 a:hover{background:var(--brand-soft)}
.info-btns .button2 a{background:var(--brand);color:var(--on-dark);border:2px solid var(--brand)}
.info-btns .button2 a:hover{background:var(--brand-deep);border-color:var(--brand-deep)}

/* ---------- footer ---------- */
.ftr-top{background:var(--brand-deep);color:var(--on-dark);padding:40px 0}
.ftr-top h3{font-size:1.125rem}
.ftr-top h3 a{text-decoration:none}
.ftr-top p{margin-top:8px;font-size:.88rem;color:var(--on-dark-muted)}
.ftr-bottom{background:#052a4d;color:var(--on-dark);padding:28px 0 32px}
.ftr-bottom ul{display:flex;flex-wrap:wrap;gap:6px 24px;font-size:.84rem}
.ftr-bottom ul a{color:var(--on-dark-muted);text-decoration:none;text-underline-offset:4px}
.ftr-bottom ul a:hover{color:var(--on-dark);text-decoration:underline}
.ftr-bottom .copyright{margin-top:24px;font-size:.75rem;color:var(--on-dark-muted)}
.ftr-bottom .copyright a{text-decoration:none}

.return-top{
  position:fixed;right:16px;bottom:16px;z-index:30;width:48px;height:48px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--brand);color:var(--on-dark);
  box-shadow:var(--shadow-hover);text-decoration:none;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;
}
.return-top.is-show{opacity:1;visibility:visible}
.return-top svg{width:22px;height:22px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- 協力会社募集・採用のバナー（TOP） ---------- */
.gates{padding:8px 0 64px}
@media(min-width:768px){.gates{padding:16px 0 88px}}
.gates__grid{display:grid;gap:16px}
@media(min-width:768px){.gates__grid{grid-template-columns:1fr 1fr;gap:24px}}
.gate{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:280px;
  padding:28px;border-radius:12px;overflow:hidden;text-decoration:none;color:var(--on-dark);
  box-shadow:var(--shadow-hover);isolation:isolate;
}
@media(min-width:1024px){.gate{min-height:360px;padding:40px 44px}}
.gate__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s ease}
.gate::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gate-veil)}
.gate--recruit::before{background:var(--gate-veil-2)}
.gate:hover .gate__bg{transform:scale(1.05)}
.gate__en{font-size:.82rem;font-weight:700;letter-spacing:.2em;color:var(--brand-pale)}
.gate__ttl{margin-top:4px;font-size:1.5rem;font-weight:700;line-height:1.4}
@media(min-width:1024px){.gate__ttl{font-size:1.875rem}}
.gate__lead{margin-top:8px;font-size:.94rem;color:var(--on-dark-muted)}
.gate__go{
  align-self:flex-start;margin-top:18px;display:inline-flex;align-items:center;gap:10px;
  padding:12px 22px;border-radius:999px;background:var(--bg);color:var(--brand-deep);font-weight:700;font-size:.94rem;
  transition:background-color .15s;
}
.gate:hover .gate__go{background:var(--brand-soft)}
.gate__go svg{width:18px;height:18px}
.gate__tag{position:absolute;top:20px;right:20px;padding:4px 12px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid var(--on-dark-line);font-size:.75rem;font-weight:700}

/* ---------- お知らせ（TOP・1カラム） ---------- */
.news{display:grid;gap:20px}
.news-item{display:grid;gap:20px;align-items:center}
@media(min-width:768px){.news-item{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:36px}}
.news-item__fig img{width:100%;border-radius:8px;border:1px solid var(--line)}
.news-item__label{
  display:inline-block;margin-bottom:10px;padding:3px 12px;border-radius:999px;
  background:var(--brand-soft);color:var(--brand);font-size:.78rem;font-weight:700;letter-spacing:.04em;
}
.news-item__ttl{font-size:1.125rem;font-weight:700;color:var(--brand-deep);line-height:1.6}
@media(min-width:768px){.news-item__ttl{font-size:1.25rem}}
.news-item__ttl + p{margin-top:8px}
.news-photo{display:flex;justify-content:center}
.news-photo img{border-radius:8px;border:1px solid var(--line)}

/* ---------- 下層ページ共通 ---------- */
.page-head{position:relative;color:var(--on-dark);background:var(--brand-deep);overflow:hidden;isolation:isolate}
.page-head__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.page-head::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--page-veil)}
.page-head .wrap{padding-top:44px;padding-bottom:40px}
@media(min-width:768px){.page-head .wrap{padding-top:72px;padding-bottom:64px}}
.page-head__en{font-size:.78rem;font-weight:700;letter-spacing:.2em;color:var(--brand-pale)}
.page-head h1{margin-top:6px;font-size:1.625rem;line-height:1.4}
@media(min-width:768px){.page-head h1{font-size:2.25rem}}
.crumb{background:var(--surface);border-bottom:1px solid var(--line);font-size:.82rem}
.crumb ol{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;padding:10px 0}
.crumb li+li::before{content:"›";margin:0 10px;color:var(--muted)}
.crumb a{color:var(--brand);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.page{padding:48px 0 72px}
@media(min-width:768px){.page{padding:72px 0 96px}}
.narrow{max-width:880px;margin:0 auto}
.page-sec + .page-sec{margin-top:56px}
@media(min-width:768px){.page-sec + .page-sec{margin-top:72px}}
.page-sec > .h2{margin-bottom:24px}
.prose p{font-size:1rem}
.prose p + p{margin-top:1.1em}
.prose strong{color:var(--brand-deep)}
.prose a{color:var(--brand);font-weight:700;text-underline-offset:3px}
.prose h3{margin:2em 0 .6em;font-size:1.125rem;color:var(--brand-deep);display:flex;gap:10px;align-items:baseline}
.prose h3::before{content:"";flex:0 0 4px;align-self:stretch;background:var(--brand);border-radius:2px}
.prose h3:first-child{margin-top:0}
.prose ul.dots{list-style:none;display:grid;gap:6px;margin-top:.6em}
.prose ul.dots li{position:relative;padding-left:1.2em}
.prose ul.dots li::before{content:"";position:absolute;left:2px;top:.75em;width:7px;height:7px;border-radius:50%;background:var(--brand)}
.prose .fig{margin-top:28px}
.prose .fig img{border-radius:8px;margin:0 auto}
.lead-box{padding:20px 24px;border-radius:10px;background:var(--sky);border:1px solid var(--brand-soft);font-weight:700;color:var(--brand-deep)}
.lead-box p{font-size:1.0625rem}
.note-sm{font-size:.86rem;color:var(--muted)}
.updated{margin-top:32px;font-size:.86rem;color:var(--muted);text-align:right}

/* 会社概要の表 */
.info-table{width:100%;border-collapse:collapse;background:var(--bg);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.97rem}
.info-table th,.info-table td{padding:16px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:0}
.info-table th{width:11em;background:var(--surface);color:var(--brand-deep);font-weight:700;white-space:nowrap}
.info-table ol{list-style:none;display:grid;gap:4px}
@media(max-width:639px){
  .info-table,.info-table tbody,.info-table tr,.info-table th,.info-table td{display:block;width:auto}
  .info-table th{border-bottom:0;padding-bottom:4px}
  .info-table td{padding-top:4px}
}
.timeline{list-style:none;border-left:2px solid var(--brand-soft);margin-left:6px;display:grid;gap:14px}
.timeline li{position:relative;padding-left:22px}
.timeline li::before{content:"";position:absolute;left:-7px;top:.6em;width:12px;height:12px;border-radius:50%;background:var(--bg);border:3px solid var(--brand)}
.timeline b{display:block;color:var(--brand);font-size:.9rem}

/* 写真と文章の左右並び */
.split{display:grid;gap:24px;align-items:start}
@media(min-width:900px){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px}.split--rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.split--rev .split__fig{order:2}}
.split__fig img{width:100%;border-radius:10px;box-shadow:var(--shadow)}
.split__fig--contain img{box-shadow:none;max-width:360px;margin:0 auto}
.card-soft{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:24px;box-shadow:var(--shadow)}
@media(min-width:768px){.card-soft{padding:32px 36px}}
.creed{list-style:none;display:grid;gap:8px;counter-reset:creed}
.creed li{counter-increment:creed;display:flex;gap:14px;align-items:baseline;padding:12px 16px;border-radius:8px;background:var(--surface)}
.creed li::before{content:counter(creed,decimal-leading-zero);font-weight:700;color:var(--brand);font-size:.9rem;flex:0 0 auto}
.philo{display:grid;gap:16px}
@media(min-width:768px){.philo{grid-template-columns:repeat(3,1fr)}}
.philo div{padding:22px;border-radius:10px;background:var(--bg);border:1px solid var(--line);border-top:4px solid var(--brand)}
.philo dt{font-size:.82rem;font-weight:700;color:var(--brand);letter-spacing:.06em}
.philo dd{margin-top:6px;font-weight:700;color:var(--brand-deep);line-height:1.7}
.letter p{line-height:2.1}
.letter .sign{margin-top:1.6em;text-align:right;font-weight:700;color:var(--brand-deep)}
.pillars{list-style:none;display:grid;gap:12px}
@media(min-width:768px){.pillars{grid-template-columns:repeat(3,1fr)}}
.pillars li{display:flex;align-items:center;gap:14px;padding:20px;border-radius:10px;background:var(--brand-deep);color:var(--on-dark);font-weight:700;font-size:1.0625rem}
.pillars li b{flex:0 0 40px;height:40px;border-radius:50%;background:var(--bg);color:var(--brand-deep);display:flex;align-items:center;justify-content:center}
.goals{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.goals li{padding:6px 14px;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep);font-weight:700;font-size:.9rem}
.photo-row{display:grid;gap:16px}
@media(min-width:768px){.photo-row{grid-template-columns:repeat(3,1fr)}}
.photo-row img,.photo-wide img{width:100%;border-radius:10px}

/* お問い合わせ */
.contact-links{list-style:none;display:grid;gap:16px}
.contact-links a{display:flex;align-items:center;gap:18px;padding:22px 24px;border-radius:10px;background:var(--bg);border:1px solid var(--line);box-shadow:var(--shadow);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.contact-links a:hover{border-color:var(--brand);box-shadow:var(--shadow-hover)}
.contact-links b{flex:0 0 44px;height:44px;border-radius:50%;background:var(--brand);color:var(--on-dark);display:flex;align-items:center;justify-content:center;font-size:1.125rem}
.contact-links strong{display:block;color:var(--brand-deep);font-size:1.0625rem}
.contact-links small{display:block;margin-top:2px;color:var(--muted);font-size:.86rem}
.contact-links .ext{margin-left:auto;color:var(--brand);flex:0 0 auto}
@media(min-width:768px){.contact-links--grid{grid-template-columns:1fr 1fr}.contact-links--grid a{min-height:120px}}
.tel-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding:20px 24px;border-radius:10px;background:var(--sky);border:1px solid var(--brand-soft)}
.tel-box a{font-size:1.75rem;font-weight:700;color:var(--brand-deep);text-decoration:none}
.form{display:grid;gap:22px;padding:28px 24px;border-radius:10px;background:var(--bg);border:1px solid var(--line);box-shadow:var(--shadow)}
@media(min-width:768px){.form{padding:36px 40px}}
.form label.lbl,.form .lbl{display:block;font-weight:700;margin-bottom:6px}
.req{display:inline-block;margin-left:8px;padding:0 8px;border-radius:4px;background:var(--brand);color:var(--on-dark);font-size:.72rem;font-weight:700;vertical-align:2px}
.fld{width:100%;padding:12px 14px;font:inherit;font-size:1rem;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.fld:focus{border-color:var(--brand);outline:2px solid var(--brand-soft)}
textarea.fld{min-height:180px;resize:vertical;line-height:1.8}
.chk{display:flex;flex-wrap:wrap;gap:8px 20px}
.chk label,.agree label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.chk input,.agree input{width:18px;height:18px;accent-color:var(--brand)}
.agree{padding:16px;border-radius:8px;background:var(--surface)}
.agree label{align-items:flex-start}.agree input{flex:none;margin-top:.3em} /* 同意のチェックは左。文が折り返しても1行目にそろえる */
.agree a{color:var(--brand);font-weight:700}
.form .btn{justify-self:center;min-width:240px;font-size:1.0625rem;border:0;cursor:pointer;font-family:inherit}
.form-msg{padding:14px 16px;border-radius:8px;background:var(--brand-soft);color:var(--brand-deep);font-weight:700;font-size:.94rem}
/* 送信の仕組み（お問い合わせフォーム）。.form は display:grid なので、hidden を効かせるには !important が要る */
.form[hidden],.form-msg[hidden],.form-done[hidden]{display:none!important}
.form-msg.is-error{background:var(--surface);color:var(--danger)}
.err{display:block;margin-top:6px;color:var(--danger);font-size:.88rem;font-weight:700}
.err:empty{display:none}
.fld[aria-invalid=true]{border-color:var(--danger);outline:1px solid var(--danger)}
.chk.is-invalid,.agree.is-invalid{outline:2px solid var(--danger);outline-offset:4px;border-radius:6px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ts-widget{display:flex;justify-content:center}
.ts-widget:empty{display:none}
.form-done{padding:28px 24px;border-radius:10px;background:var(--brand-soft);border:1px solid var(--line)}
.form-done:focus{outline:none}
.form-done p+p{margin-top:8px}
.form-done__ttl{font-size:1.25rem;font-weight:700;color:var(--brand-deep);word-break:keep-all}
.form-done__note{font-size:.94rem;color:var(--muted)}

/* サービス詳細 */
.svc-detail{display:grid;gap:28px}
@media(min-width:900px){.svc-detail{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px}}
.svc-detail__fig img{width:100%;border-radius:10px;box-shadow:var(--shadow)}
@media(min-width:900px){.svc-detail__fig{position:sticky;top:120px;align-self:start}}
.svc-detail .prose > p:first-child{font-size:1.125rem;font-weight:700;color:var(--brand-deep)}
.svc--7 {grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
@media(min-width:1100px){.svc--7{grid-template-columns:repeat(4,1fr);gap:20px}}
.svc .is-current a{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}
.prose ul.dots + p,.prose ul + p{margin-top:1.1em}
@media(max-width:767px){.gate{padding-top:72px}}
.gate__ttl span{display:inline-block}

/* ---------- 改行・スマホの調整（2026-10-24） ---------- */
/* 見出し・ボタン・短い項目は、文節の切れ目（HTML内の <wbr>）でだけ改行する。
   長い本文は通常どおり（行末がそろって読みやすい）。長いURLなどは、はみ出す場合だけ途中で折る */
body{line-break:strict;overflow-wrap:anywhere}
h1,h2,h3,dt,th,label,legend,.btn,.gnav,.hdr__tel,.crumb,.headline,.title,
.gate__ttl,.gate__lead,.gate__go,.gate__tag,.news-item__ttl,.news-item__label,.card__ttl,.welcome__lead,.welcome__info,
.join-tag,.stat-list li,.iso__list li,.info-btns a,.contact-links strong,.contact-links small,.ftr-top,.ftr-bottom,
.philo dd,.creed li,.pillars li,.goals li,.community__list li,.timeline li,.tel-box,.page-head,.svc .desc,.intro__box .desc{word-break:keep-all}
/* グローバルメニュー：▼が文字に重ならないよう、右に余白を取る */
@media(min-width:1024px){
  .gnav>.wrap>ul>li.has-sub>a{padding-right:34px}
  .gnav .has-sub>a::before{right:16px;width:7px;height:7px;margin-top:-6px;border-width:0 1.5px 1.5px 0;border-style:solid;border-color:currentColor}
}
@media(max-width:639px){
  .h2{font-size:1.25rem}
  .page-head .wrap{padding-top:32px;padding-bottom:28px}
  .page-head h1{font-size:1.375rem}
  .crumb ol{font-size:.78rem}
  .gate__ttl{font-size:1.375rem}
  .ftr-top h3{font-size:1rem}
  .welcome__lead{font-size:1.0625rem}
  .info-btns a{font-size:1.0625rem;min-height:80px}
  .card__ttl{font-size:1.0625rem}
}
.tel-box a.btn{color:var(--on-dark);font-size:1rem}.tel-box a.btn:hover{color:var(--on-dark)}

/* ステージング（確認用）であることを示す帯。site.js が本番（www.meishoo.co.jp）以外でだけ差し込む */
.env-badge{padding:8px 16px;background:var(--flag);color:var(--on-dark);font-size:.82rem;font-weight:700;line-height:1.5;text-align:center;word-break:keep-all;overflow-wrap:anywhere}
