:root{
  --color-text:#3C3B39;
  --color-accent:#969089;
  --font-body:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
}

/* Base */
*{ box-sizing:border-box }
html,body{ margin:0 }
body{
  font-family:var(--font-body); color:var(--color-text);
  background-image:url('../img/all_back.png');
  background-repeat:repeat; background-position:center top; background-size:cover;
}
img{ max-width:100%; display:block; height:auto }
a{ text-decoration:none; color:inherit }
.container{ max-width:760px; padding:0 20px; margin:auto }
.section{ padding:48px 0 }
.center{ text-align:center }
.bgVideo{ position:fixed; inset:0; width:100%; height:100%; object-fit:cover; z-index:-1 }

/* Layout */
.layout{
  position:fixed; top:0; height:100vh; width:480px;
  left:calc(100vw - 100px - 280px - 65px - 480px);
  /* ★ 背景は付けない（= .mainPaneで描く） */
  background:none;
  box-shadow:0 0 32px rgba(0,0,0,.10), 0 0 64px rgba(0,0,0,.06);
}
.mainPane{
  width:480px; height:100vh; overflow-y:auto;
  padding:24px 8px 0px; scroll-behavior:smooth;
  -ms-overflow-style:none; scrollbar-width:none; position:relative;
  /* ★ 背景は mainPane に付与（スクロールで動く） */
  background-image:url('../img/scrollback.png');
  background-repeat:repeat-y; background-size:480px auto; background-position:center top;
  background-attachment:scroll; /* ←固定にしない */
}
.mainPane::-webkit-scrollbar{ display:none }

.sideMenu{ position:fixed; right:100px; top:625px; width:280px; z-index:10 }
.sideMenu__list{
  list-style:none; padding:0; margin:0 0 16px 0;
  font-family:'STIX Two Text',serif; font-size:28px; color:#3C3B39; line-height:1.8;
}
.sideMenu__list li{ margin:4px 0 }
.sideMenu__list a{ color:#3C3B39 }

.logoFixed{ position:fixed; left:150px; top:625px; width:300px; height:auto; opacity:.95; z-index:5; pointer-events:none }

/* CTA（お問い合わせ） */
.btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px; position:relative; padding:12px 62px 12px 24px;
  border-radius:999px; background:var(--color-accent); color:#fff; font-weight:700;
  box-shadow:0 2px 6px rgba(0,0,0,.1);
}
.btn-primary::after{
  content:""; position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:28px; height:28px; border-radius:50%; background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.15); z-index:1;
}
.btn-primary::before{
  content:"›"; position:absolute; right:22px; top:50%; transform:translateY(-52%);
  font-size:20px; font-weight:800; color:#969089; line-height:1; z-index:2;
}

/* Hero */
.section--tight{ padding:32px 0 24px }
.heroStrip{ max-width:760px; margin:0 auto }

/* H2 bar */
.section__title{
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-weight:600; font-size:32px; line-height:1.2;
  color:#fff; background:#969089; mix-blend-mode:multiply;
  display:block; text-align:center; padding:19px 0; margin:0; width:100%;
}

/* Business Field */
.section--bf .bf-intro{
  font-size:16px; color:#3C3B39; text-align:center; margin:41px 0; white-space:pre-line; line-height:2.2em;
}
.section--bf .arch{ background:transparent; border:0; box-shadow:none; padding:0; margin:16px 0 64px }

/* リスト（幅384、gap:0、仕切り線） */
.section--bf .bf-list{
  width:384px; margin:0 auto; padding:0; list-style:none;
  display:grid; gap:0;
}
.bf-item + .bf-item .bf-row{ border-top:1px solid #969089 }
.section--bf .bf-row, .section--bf .bf-item{ margin:0 !important }

.bf-row{
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(255,253,253,.70);
  padding:16px 14px; border-radius:0;
}
.bf-text{
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:20px; font-weight:700; letter-spacing:.15em; color:#6f6a64;
}
.bf-plus{
  width:36px; height:36px; border-radius:50%; border:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  background:#969089; color:#fff; font-size:22px; line-height:1;
  box-shadow:0 2px 4px rgba(0,0,0,.15);
}
.bf-plus .icon{ transform:translateY(1px) }

/* 写真帯（自動スクロール） */
.bf-image{ margin:12px 0 0 }
.scrollWrap{ overflow:hidden; width:100% }
.scrollTrack{
  display:flex; gap:16px; padding:0; margin:0; list-style:none;
  will-change:transform; animation:bfAutoScroll 40s linear infinite;
}
.scrollTrack li{
  width:168px; height:200px; flex:0 0 168px; position:relative; overflow:hidden; border-radius:6px;
}
.scrollTrack img{ width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(100%) }
.scrollTrack li::after{ content:""; position:absolute; inset:0; background:rgba(255,253,240,.55) }
/* distance = (168 + 16) * 7 = 1288px */
@keyframes bfAutoScroll{ from{transform:translateX(0)} to{transform:translateX(-1288px)} }

/* CONTACT */
.contactText{
  font-family:'STIX Two Text',serif; font-size:45px; color:#969089; font-weight:700; margin:0 0 12px;
}
.privacyLink{
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:14px; font-weight:700; color:#3C3B39; text-decoration:none; border-bottom:1px solid #3C3B39;
}
.copyright{
  margin-top:24px; font-family:'STIX Two Text',serif; font-size:13px; font-weight:700; color:#969089;
}

/* Modal（layout内 / 幅80% / 上だけ丸） */
.bf-modal{ display:none; position:absolute; inset:0; z-index:40 }
.bf-modal.is-open{ display:block }
.bf-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.20) }
.archModal{
  position:absolute; left:50%; top:28px; transform:translateX(-50%);
  width:80%; max-width:420px; background:#fff;
  border-radius:210px 210px 12px 12px; /* 上だけ角丸 */
  box-shadow:0 8px 24px rgba(0,0,0,.18); overflow:hidden;
}
.archModal .modalTop{
  position:absolute; left:50%; top:0; transform:translate(-50%,-58%);
  width:140%; padding-top:140%; background:#fff; border-radius:50%;
  box-shadow:0 -1px 0 rgba(0,0,0,.06);
}
.archModal .modalBody{ position:relative; padding:60px 20px 56px }
.modalLogos{ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:center; justify-items:center; margin-bottom:8px }
.logoCard img{ width:140px; height:auto }
.logoCard.webwire_img img{ width:200px; height:auto }
.logoCard.gris_img img{ width:200px; height:auto }
.btnSite{ display: list-item;
    padding: 8px 16px 5px;
    border-radius: 999px;
    color: #fff;
    font-weight: 700;
    font-family: 'STIX Two Text', serif;
    letter-spacing: .05em;
    text-align: center; }
.webwire_img .btnSite {
    display: block;
    padding: 8px 16px 5px;
    border-radius: 999px;
    color: #fff;
    font-weight: 700;
    font-family: 'STIX Two Text', serif;
    letter-spacing: .05em;
    text-align: center;
    width: 70%;
    margin: auto;
}
.gris_img .btnSite {
    display: block;
    padding: 8px 16px 5px;
    border-radius: 999px;
    color: #fff;
    font-weight: 700;
    font-family: 'STIX Two Text', serif;
    letter-spacing: .05em;
    text-align: center;
    width: 70%;
    margin: auto;
}
.btnSite.webwire{ background: #221917; }
.btnSite.gris{ background: #A4977F; }
.btnSite--ciel{ background:#e18863 }
.btnSite--nfoods{ background:#0052b4 }
.modalHeading{ font-family:'STIX Two Text',serif; font-size:28px; color:#e0dbd4; font-weight:700; margin:6px 0; text-align:left }
.modalList{ margin:0; padding:0 0 0 1.2em }
.modalList li{ margin:.5em 0 }
.bf-closeCircle{
  position:absolute; left:50%; transform:translateX(-50%); bottom:10px;
  width:36px; height:36px; border-radius:50%; background:#969089; color:#fff; border:none; font-size:18px; cursor:pointer;
}

/* Desktop */
@media (min-width:981px){
  /* 背景はPCでも固定にしない ⇒ mainPaneに scroll 指定済み */
  html,body{ height:100vh; overflow:hidden } /* ページ全体のスクロールは止め、mainPaneだけスクロール */
}

/* Mobile */
@media (max-width:980px){
  html,body{ height:auto; overflow:visible }
  .logoFixed{ display:none !important }
  .sideMenu{ display:none !important }
  .bgVideo{ display:none }

  .layout{
    position:static; width:100%; height:auto;
    box-shadow:none;
  }
  .mainPane{
    width:100%; height:auto; overflow:visible;
    padding:16px 16px 40px;
    background-size:100% auto; /* 幅にフィット */
    background-attachment:scroll; /* iOSでの固定バグ回避 */
  }
  .container{ max-width:none; padding:0 }
  .section{ padding:32px 0 }
  .section__title{ font-size:26px }

  .section--bf .bf-list{ width:calc(100% - 32px); margin:0 auto }
  .bf-row{ padding:14px 12px }

  /* モーダルは layout内で開く */
  .bf-modal{ position:absolute; inset:0 }
  .archModal{ width:92%; max-width:none; top:24px }
}
/* 単一ロゴのとき中央1列に */
.modalLogos--single{ grid-template-columns:1fr; }

/* ロゴの下に英字キャプションを出す時用（LIFE HANDYなど） */
.brandCaption{
  margin-top:6px;
  font-family:'STIX Two Text',serif;
  font-size:14px; letter-spacing:.12em;
  color:#969089;
}
#business {
  padding-top: 435px;;
}
/* === HOTFIX: layout の背景は固定にしない / 背景は mainPane 側にだけ === */
.layout{
  background:none !important;
  background-image:none !important;
  background-attachment:scroll !important;
}
.mainPane{
  background-image:url('../img/scrollback.png') !important;
  background-repeat:repeat-y !important;
  background-position:center top !important;
  background-size:480px auto !important;
  background-attachment:scroll !important; /* ←固定OFF */
}
/* SP時は幅にフィット */
@media (max-width:980px){
  .mainPane{ background-size:100% auto !important; }
}
/* 背景が固定っぽく見える対策（強制的にスクロールに追従） */
.mainPane{
  background-attachment: local !important;
  -webkit-transform: translateZ(0);  /* Safariの描画バグ回避 */
}
/* === H2バーをレイアウト端まで広げる === */
.mainPane{ --pane-pad:8px; }                 /* PCの .mainPane 横パディング */
@media (max-width:980px){ .mainPane{ --pane-pad:16px; } }  /* SP時の横パディング */

.section.container{ padding-left:0; padding-right:0; }     /* sectionに付いたcontainerの左右余白を無効化 */

.section__title{
  display:block;
  /* mainPaneの左右パディング分を相殺して“はみ出し”=フルブリード */
  width:calc(100% + (var(--pane-pad) * 2));
  margin-left:calc(-1 * var(--pane-pad));
  margin-right:calc(-1 * var(--pane-pad));
  border-radius:0;
}
#belief {
  margin-top: 66px;
}
#company {
  margin-top: 88px;
}
.space200 {
  display: block;
  height: 440px;
}
.shinnenp {
  line-height: 1.7;
}
/* ===== PROFILE: 左寄せ & 体裁指定 ===== */
.section--profile { text-align:left; } /* centerクラスの影響を打ち消し */

.section--profile .profileGrid{
  display:grid;
  gap:8px;                 /* 行間は控えめに */
  grid-template-columns:1fr;
  max-width:none;          /* 左寄せにするため中央寄せ解除 */
  margin:12px 0 0;         /* 左寄せ（autoを外す） */
}

.section--profile .profileGrid dt,
.section--profile .profileGrid dd{
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:16px;
  font-weight:700;               /* bold */
  letter-spacing:0.3em;          /* 文字間 300 */
  line-height:20px;              /* 行送り 20 */
  color:#3C3B39;
  display:block;
  padding-left:38px;             /* 文字の位置を左から38px */
  line-height: 1.6;
}

/* dtだけ背景を付与（#CDC4BA の40%透過） */
.section--profile .profileGrid dt{
  background:rgba(205,196,186,0.40);
  padding-top:6px;
  padding-bottom:6px;
  margin:6px 0 2px;             /* 直後のddとの間隔を少しだけ */
}

/* ddは背景なし・下マージンは「1文字」くらい（=1em） */
.section--profile .profileGrid dd{
  background:none;
  margin:0 0 1em 0;
}
/* ===== PROFILE: dtを幅180px固定、ddを右側に配置 ===== */
.section--profile .profileGrid{
  display:grid;
  grid-template-columns:180px 1fr; /* ← dt 180px / dd 残り */
  column-gap:0;
  row-gap:8px;
}

.section--profile .profileGrid dt{
  grid-column:1;
  width:180px;                 /* 念押しで固定 */
  /* 既存指定（背景/フォント/左38pxなど）はそのまま有効 */
}

.section--profile .profileGrid dd{
  grid-column:2;
  /* 背景なし、margin-bottom:1em、左38pxパディング などは以前の指定を継承 */
}
/* ==== PROFILE: dd を dt の下へ（1カラム縦並び） ==== */
.section--profile .profileGrid{
      display: grid;
    grid-template-columns: 1fr;
    row-gap: 6px;
    width: 375px;
    margin: auto;
    margin-top: 190px;
}

.section--profile .profileGrid dt,
.section--profile .profileGrid dd{
  grid-column:1;               /* 同じ列に積む */
}

/* dt は横180pxの帯（左寄せ） */
.section--profile .profileGrid dt{
  width:180px;
}

/* dd はその下にフル幅で表示（背景なし・下余白は1em） */
.section--profile .profileGrid dd{
  width:auto;
  margin:0 0 1em 0;            /* “1文字くらい”の下余白 */
  /* padding-left:38px は既存指定を継承（文字を左から38px） */
  letter-spacing: normal;
}
/* CONTACT リード文＆CTA */
.contactLead{
  margin:10px 0 14px;
  font-size:16px;
  line-height:1.8;
  letter-spacing:.08em;
  color:#3C3B39;
}
.contactCTA{ margin:0 0 120px; }
/* 擬似要素のまま幅・高さを拡張 */
.contactCTA{ margin:0 26px 120px; padding:0 24px }
.btn-primary{
  width:100%; height:64px; padding:0 88px 0 32px; font-size:22px;
  border-radius:9999px; box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.btn-primary::after{
  width:48px; height:48px; right:20px; top:50%; transform:translateY(-50%);
}
.btn-primary::before {
    font-size: 34px;
    right: 38px;
    top: 42%;
    transform: translate(1px, -50%);
}
@media (max-width:980px){ .contactCTA{ padding:0 16px } }
/* === contact.html 専用：layout 枠の背景差し替え === */
.page-contact .mainPane{
  background-image: url('../img/contactback.png') !important;
  background-repeat: repeat-y !important;
  background-position: center top !important;
  background-size: 480px auto !important;
  background-attachment: scroll !important;
}

/* contact ページでは右下CTAを隠す（ナビだけ） */
.page-contact .sideMenu .cta{ display:grid; }

/* SP時：幅フィット */
@media (max-width:980px){
  .page-contact .mainPane{ background-size:100% auto !important; }
}
/* contact：リードテキスト（上から335px / 中央寄せ） */
.page-contact .contactIntro{
  margin:335px auto 24px;       /* 上だけ 335px 下げる */
  max-width:420px;              /* 可読幅に収めて中央配置 */
  text-align:center;
  font-size:16px;
  line-height:1.9;
  letter-spacing:.08em;
  color:#3C3B39;
  white-space:pre-line;         /* 入力の改行をそのまま反映 */
}
/* contact：リード文のタイポ設定 */
.page-contact .contactIntro{
  margin:260px auto 24px;      /* 上から335px */
  max-width:420px;
  text-align:center;
  white-space:pre-line;

  /* 指定どおりのフォント／サイズ */
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:16px;
  font-weight:700;             /* bold */
  line-height:2.2;            /* 行間24 */
  color:#3C3B39;

  letter-spacing:normal;       /* 余計な字間は無しに */
}
/* ===== Contact form ===== */
.contactForm{ margin:16px 30px 40px; }
.formCard{
  background:rgba(205,196,186,.28);
  border-radius:12px;
  padding:36px 14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 1px 4px rgba(0,0,0,.06);
}

/* ラベル（Mincho 14太字/行送り20/文字色#3C3B39） */
.formGroup label{
  display:block;
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:14px; font-weight:700; line-height:20px; color:#3C3B39;
  margin:4px 0 6px 0;
}
.req{ color:#c66; margin-left:.25em; }

/* 入力欄 */
.formGroup input,
.formGroup textarea{
  width:100%; border:1px solid rgba(0,0,0,.12);
  border-radius:10px; background:#fff;
  font-size:14px; line-height:20px;
  padding:12px 14px; color:#3C3B39;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.06);
}
.formGroup textarea{ height:200px; resize:vertical; }
.formGroup input::placeholder,
.formGroup textarea::placeholder{ color:#b9b2aa; }

/* 仕切り線（点線） */
.formDivider{
  height:0; border-top:1px dashed #c7bdb3;
  margin:10px 0;
}

/* ポリシー注記 */
.policyNote{
  margin:12px 4px 6px;
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:12px; line-height:1.8; color:#6f6a64;
}

/* ポリシーボックス（スクロール） */
.policyBox{
  background:#fff; border:1px solid rgba(0,0,0,.12); border-radius:10px;
  padding:12px 14px; max-height:180px; overflow:auto;
  font-size:13px; line-height:1.8; color:#3C3B39;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.06);
}
.policyBox p{ margin:0 0 .8em }

/* 同意チェック */
.agreeLine{
  display:flex; align-items:center; gap:8px;
  margin:10px 2px 14px; font-size:14px; color:#3C3B39;
}
.agreeLine input{ width:16px; height:16px; accent-color:#969089; }

/* 送信（確認）ボタン：横いっぱい＋白丸矢印を中央に */
.formActions{ margin:4px 0 0; padding:0 8px; }
.btn-primary.btn-confirm{
  width:100%; height:56px; padding:0 80px 0 28px;
  font-size:20px; box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.btn-primary.btn-confirm .btn-arrow{
  position:absolute; right:18px; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%; background:#fff;
  display:grid; place-items:center; box-shadow:0 2px 6px rgba(0,0,0,.15);
}
.btn-primary.btn-confirm .btn-arrow::before{
  content:"›"; color:#969089; font-size:24px; transform:translateX(1px);
}

/* 同意するまで無効（見た目） */
.btn-confirm:disabled{ opacity:.45; pointer-events:none; }

/* SP微調整 */
@media (max-width:980px){
  .formCard{ padding:12px; border-radius:10px }
  .formActions{ padding:0 6px }
  .btn-primary.btn-confirm{ height:56px; }
}
.formGroup {
  margin-bottom: 20px;;
}
/* プライバシーポリシー見出し */
.policyHeading{
  margin:0 0 8px;
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:19px;
  font-weight:500;        /* Medium */
  line-height:1.6;
  color:#3C3B39;
}
/* 同意チェックを中央寄せ */
.agreeLine{
  display:flex; justify-content:center; align-items:center; gap:8px;
  margin:12px 0 18px; text-align:center;
}
.agreeLine input{ width:16px; height:16px; accent-color:#969089; }

/* 確認ボタン：中央・矢印なしの丸ボタン */
.formActions{ margin:8px 0 0; text-align:center; }
.btn-primary.btn-confirm{
  width:auto;                /* ← 100% ではなく幅は内容に合わせる */
  height:56px;
  padding:0 56px;            /* 左右均等に */
  border-radius:9999px;
  font-size:20px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
  border: none;
}

/* 念のため：矢印スタイルが残っていても非表示にする */
.btn-primary.btn-confirm .btn-arrow{ display:none !important; }

@media (max-width:980px){
  .btn-primary.btn-confirm{ padding:0 48px; height:54px; }
}

.formActions .btn-primary::after {
    display:none;

}
/* === PCでも背景は固定にしない（強制上書き） === */
@media (min-width:981px){
  .layout{ background-attachment:scroll !important; }
  .mainPane{ background-attachment:scroll !important; }
  .page-contact .mainPane{ background-attachment:scroll !important; }
}
/* === 背景をスクロールに追従させる（PCでも固定に見えない） === */
.layout{ background-attachment: scroll !important; }         /* 念のため */
.mainPane{
  background-attachment: local !important;                   /* ←これがポイント */
  background-position: center top !important;
  background-repeat: repeat-y !important;
}
.page-contact .mainPane{
  background-attachment: local !important;                   /* contact も同様に */
  background-position: center top !important;
  background-repeat: repeat-y !important;
}

/* 以前の fixed 指定を念のため無効化 */
@media (min-width:981px){
  .layout, .mainPane, .page-contact .mainPane{
    background-attachment: local !important;
  }
}
/* ===== privacy ===== */
.page-privacy .mainPane{
  /* contact と同じ石目背景を使用（固定にしない） */
  background-image:url('../img/privacy.png') !important;
  background-repeat:repeat-y !important;
  background-position:center top !important;
  background-size:480px auto !important;
  background-attachment:local !important;
}
@media (max-width:980px){
  .page-privacy .mainPane{ background-size:100% auto !important; }
}

/* ドキュメント本文の体裁 */
.policyDoc{
  max-width:640px;
  margin:28px auto 56px;
  padding:0 8px;
  color:#3C3B39;
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:16px;
  line-height:1.9;
}
.policyDoc h3{
  margin:22px 0 10px;
  font-size:19px;
  font-weight:500; /* Medium */
  line-height:1.7;
}
.policyDoc p{ margin:0 0 12px; }
.policyDoc ul, .policyDoc ol{ margin:0 0 14px 1.2em; padding:0; }
.policyDoc li{ margin:.3em 0; }
.policyDoc .policyLinks{ list-style:disc; }
.policyDoc .policyLinks a{ text-decoration:underline; }
.policyAddress{ font-style:normal; line-height:1.9; }

/* ページ上部のタイトルバーは既存 .section__title を利用 */
/* ====== privacy: 見出しはバーなしで強調 ====== */
.page-privacy .pageHeading{
  margin:10px auto 18px;
  text-align:center;
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:34px;           /* 強調 */
  font-weight:700;
  letter-spacing:.05em;
  color:#3C3B39;
}

/* 問い合わせフォーム風の背景パネル */
.policyPaper{
  max-width:720px;
  margin:0 auto 56px;
  padding:18px 16px;
  background:rgba(255,253,253,.85);      /* #FFFDFD 85% */
  border:1px solid rgba(150,144,137,.25);
  border-radius:14px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    0 10px 24px rgba(0,0,0,.12);
}

/* 本文体裁＆「h3から見て左に余白」 */
.policyDoc{
  color:#3C3B39;
  font-family:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:16px;
  line-height:1.9;
}
.policyDoc h3{
  margin:22px 0 8px;
  font-size:19px;
  font-weight:600; /* Medium相当 */
  line-height:1.7;
}
.policyDoc p,
.policyDoc ul,
.policyDoc ol,
.policyDoc address{
  margin-left:14px;          /* ← h3より少し右へ（読みやすい段下げ） */
  margin-bottom:12px;
}

/* 見やすい“おしゃれ”リスト（UL） */
.policyDoc ul{
  list-style:none;
  padding:0;
}
.policyDoc ul li{
  position:relative;
  padding-left:1.1em;
  margin:.45em 0;
}
.policyDoc ul li::before{
  content:"";
  position:absolute; left:0; top:.7em;
  width:.46em; height:.46em;
  border-radius:50%;
  background:#969089;         /* アクセント色の丸いビュレット */
  box-shadow:0 0 0 2px rgba(150,144,137,.12);
}

/* 番号付き（OL）をスマートに */
.policyDoc ol{
  list-style:none;
  counter-reset:num;
  padding:0;
}
.policyDoc ol > li{
  counter-increment:num;
  position:relative;
  padding-left:2em;
  margin:.55em 0;
}
.policyDoc ol > li::before{
  content:counter(num) ".";
  position:absolute; left:0; top:0;
  width:1.6em;
  color:#969089;
  font-family:'STIX Two Text',serif;
  font-weight:700;
}

/* リンクや住所 */
.policyDoc .policyLinks{ list-style:none; padding:0; margin:8px 0 14px 14px; }
.policyDoc .policyLinks li{ margin:.35em 0; }
.policyDoc .policyLinks a{ text-decoration:underline; }
.policyDoc .policyAddress{ font-style:normal; }

/* モバイル微調整 */
@media (max-width:980px){
  .page-privacy .pageHeading{ font-size:28px; margin:6px 0 14px; }
  .policyPaper{ margin-bottom:40px; padding:14px 12px; }
  .policyDoc p, .policyDoc ul, .policyDoc ol, .policyDoc address{ margin-left:10px; }
}
.section.container.pri {
    padding-left: 0;
    padding-right: 0;
    padding-top: 300px;
}
/* === Modal positioning upgrade === */
/* 既定は画面中央 */
.bf-modal .archModal{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%); /* 中央 */
}

/* クリック位置付近に固定したいとき（JSで .is-anchored を付与） */
.bf-modal.is-anchored .archModal{
  transform:translateX(-50%); /* 垂直方向はpxで指定 */
}
/* === Modal を少し大きく（PC/モバイル両方） === */

/* PC：左右に12pxの余白を残して最大化（≈ 456px） */
@media (min-width:981px){
  .bf-modal .archModal{
    width:95% !important;        /* 480px の 95% */
    max-width:456px !important;  /* 480 - 24（左右余白） */
  }
}

/* モバイル：ほぼ全幅 */
@media (max-width:980px){
  .bf-modal .archModal{
    width:96% !important;
    max-width:none !important;
  }
}

/* （任意）トップ円キャップを少しワイドにして見た目を整える */
.bf-modal .archModal .modalTop{
  width:150%;
  padding-top:150%;
}
@media (min-width:981px){
  .bf-modal .archModal{
    max-width:446px !important; /* 456px → 446px（-10px） */
  }
}
.modalBody h3 {
          font-family: 'STIX Two Text', serif;
    font-weight: 500;
    text-align: center;
    margin: 40px auto 20px;
}
/* === Modal WEBSITE ボタン：ホバーで拡大 === */
.bf-modal .btnSite{
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  transform-origin: center;
  will-change: transform;
  transform: translateZ(0); /* Safari最適化 */
}

.bf-modal .btnSite:hover,
.bf-modal .btnSite:focus-visible{
  transform: scale(1.08);                /* ほんの少し拡大 */
  box-shadow: 0 6px 14px rgba(0,0,0,.22);/* 立体感アップ */
  filter: saturate(1.05);                /* 色味をわずかに強調 */
  outline: none;
}

.bf-modal .btnSite:active{
  transform: scale(1.04);                /* クリック時に少し押し込み */
}

/* 動きが苦手な人向けにモーション軽減尊重 */
@media (prefers-reduced-motion: reduce){
  .bf-modal .btnSite{ transition: none; }
}
/* === お問い合わせボタン：ホバーで拡大＆配色反転 === */
/* 基本のトランジション */
.btn-primary{
  transition: transform .18s ease, background-color .18s ease, color .18s ease,
              box-shadow .18s ease;
  transform-origin: center;
  will-change: transform;
}

/* 拡大＋配色反転（背景→白／文字→アクセント） */
.btn-primary:hover,
.btn-primary:focus-visible{
  transform: scale(1.06);
  background:#fff;
  color: var(--color-accent);
  box-shadow:0 12px 26px rgba(0,0,0,.2);
  outline:none;
}

/* 右側が “白丸＋矢印(擬似要素)” の旧タイプ対応 */
.btn-primary:hover::after,
.btn-primary:focus-visible::after{
  background: var(--color-accent);               /* 丸をアクセント色に */
}
.btn-primary:hover::before,
.btn-primary:focus-visible::before{
  color:#fff;                                    /* 矢印を白に */
}

/* 右側が <i class="btn-arrow"> の新タイプ対応 */
.btn-primary .btn-arrow{
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.btn-primary:hover .btn-arrow,
.btn-primary:focus-visible .btn-arrow{
  background: var(--color-accent);               /* 丸をアクセント色に */
  box-shadow:0 3px 8px rgba(0,0,0,.2);
}
.btn-primary .btn-arrow::before{
  transition: color .18s ease, transform .18s ease;
}
.btn-primary:hover .btn-arrow::before,
.btn-primary:focus-visible .btn-arrow::before{
  color:#fff;                                    /* 矢印を白に */
  transform: translateX(1px);                    /* 視覚中心の微調整 */
}

/* 動きが苦手な人向け：モーション軽減 */
@media (prefers-reduced-motion: reduce){
  .btn-primary{ transition:none; }
  .btn-primary .btn-arrow,
  .btn-primary .btn-arrow::before{ transition:none; }
}
/* === PCだけ：ロゴ＆メニューを bottom 固定に === */
@media (min-width:981px){
  .logoFixed{
    position:fixed;
    left:150px;
    top:auto !important;
    bottom:155px !important;   /* ← 下から165px */
    z-index:5;
  }
  .sideMenu{
    position:fixed;
    right:100px;
    top:auto !important;
    bottom:90px !important;    /* ← 下から70px */
    width:280px;
    z-index:10;
  }
}
@media (max-width:1380px){
.logoFixed{
  display: none;
}
}
/* ==== SP hamburger & right drawer ==== */
.hamburger{ display:none; }

@media (max-width:480px){
  .hamburger{
    display:block;   
    position:fixed; right:14px; top:14px; z-index:60;
    width:44px; height:44px; padding:0; border:0; background:transparent;
    -webkit-tap-highlight-color:transparent; cursor:pointer;
  }
  .hamburger__bar,
  .hamburger__bar::before,
  .hamburger__bar::after{
    position:absolute; left:50%; top:50%;
    width:28px; height:2px; background:#3C3B39; content:"";
    transform:translate(-50%,-50%);
  }
  .hamburger__bar::before{ transform:translate(-50%,-10px); }
  .hamburger__bar::after { transform:translate(-50%,  8px); }

  .spNav{
    position:fixed; inset:0; z-index:59; pointer-events:none;
  }
  .spNav__overlay{
    position:absolute; inset:0; background:rgba(0,0,0,.25);
    opacity:0; transition:opacity .18s ease;
  }
  .spNav__panel{
    position:absolute; top:0; right:0; height:100%; width:78vw; max-width:320px;
    background:rgba(255,253,253,.96);
    box-shadow:-12px 0 24px rgba(0,0,0,.16);
    transform:translateX(100%); transition:transform .22s ease;
    display:flex; align-items:center; justify-content:center;
  }
  .spNav__list{ list-style:none; margin:0; padding:0; text-align:center; }
  .spNav__list li{ margin:14px 0; }
  .spNav__list a{
    font-family:'STIX Two Text',serif; font-size:22px; letter-spacing:.04em;
    color:#3C3B39; text-decoration:none;
    padding:10px 16px; display:inline-block;
  }

  /* open state */
  .spNav.is-open{ pointer-events:auto; }
  .spNav.is-open .spNav__overlay{ opacity:1; }
  .spNav.is-open .spNav__panel{ transform:translateX(0); }

  /* 背景スクロール抑止（SP時） */
  html.spnav-lock, body.spnav-lock{ overflow:hidden; height:100%; }
}
/* ==== SPナビ 強制オーバーライド（最後に置くこと） ==== */
.hamburger{ display:none; } /* PCは常に非表示 */
.spNav__panel {display: none;}
@media (max-width:980px){
  /* ハンバーガーを必ず表示（他の指定を上書き） */
  .hamburger{
    display:block !important;
    position:fixed; right:14px; top:14px; z-index:9999;
    width:44px; height:44px; padding:0; border:0; background:transparent;
    -webkit-tap-highlight-color:transparent; cursor:pointer;
  }
  .hamburger .hamburger__bar,
  .hamburger .hamburger__bar::before,
  .hamburger .hamburger__bar::after{
    position:absolute; left:50%; top:50%;
    width:28px; height:2px; background:#3C3B39; content:"";
    transform:translate(-50%,-50%);
  }
  .hamburger .hamburger__bar::before{ transform:translate(-50%,-10px); }
  .hamburger .hamburger__bar::after { transform:translate(-50%,  8px); }

  /* 右スライドメニュー */
  #spNav.spNav{
    position:fixed; inset:0; z-index:9998; pointer-events:none;
  }
  .spNav__overlay{
    position:absolute; inset:0; background:rgba(0,0,0,.25);
    opacity:0; transition:opacity .18s ease;
  }
  .spNav__panel{
    position:absolute; top:0; right:0; height:100%;
    width:78vw; max-width:320px;
    background:rgba(255,253,253,.96);
    box-shadow:-12px 0 24px rgba(0,0,0,.16);
    transform:translateX(100%); transition:transform .22s ease;
    display:flex; align-items:center; justify-content:center;
  }
  .spNav__list{ list-style:none; margin:0; padding:0; text-align:center; }
  .spNav__list li{ margin:14px 0; }
  .spNav__list a{
    font-family:'STIX Two Text',serif; font-size:22px; letter-spacing:.04em;
    color:#3C3B39; text-decoration:none; padding:10px 16px; display:inline-block;
  }

  /* 開いた状態 */
  #spNav.is-open{ pointer-events:auto; }
  #spNav.is-open .spNav__overlay{ opacity:1; }
  #spNav.is-open .spNav__panel{ transform:translateX(0); }

  /* SPではPCサイドメニューを必ず隠す */
  .sideMenu{ display:none !important; }
}
/* ==== SPナビ 強制オーバーライド（最後に置く） ==== */
.hamburger{ display:none; }

@media (max-width:980px){
  /* ボタンを最前面＆確実に表示 */
  #hamburger.hamburger{
    display:block !important;
    position:fixed; right:14px; top:14px; z-index:10000;
    width:44px; height:44px; padding:0; border:0; background:transparent;
    -webkit-tap-highlight-color:transparent; touch-action:manipulation; cursor:pointer;
  }
  #hamburger .hamburger__bar,
  #hamburger .hamburger__bar::before,
  #hamburger .hamburger__bar::after{
    position:absolute; left:50%; top:50%;
    width:28px; height:2px; background:#3C3B39; content:"";
    transform:translate(-50%,-50%);
  }
  #hamburger .hamburger__bar::before{ transform:translate(-50%,-10px); }
  #hamburger .hamburger__bar::after { transform:translate(-50%,  8px); }

  /* 右スライド */
  #spNav.spNav{ position:fixed; inset:0; z-index:9999; pointer-events:none; }
  .spNav__overlay{ position:absolute; inset:0; background:rgba(0,0,0,.25); opacity:0; transition:opacity .18s ease; }
  .spNav__panel{
    position:absolute; top:0; right:0; height:100%;
    width:78vw; max-width:320px;
    background:rgba(255,253,253,.96);
    box-shadow:-12px 0 24px rgba(0,0,0,.16);
    transform:translateX(100%); transition:transform .22s ease;
    display:flex; align-items:center; justify-content:center;
  }
  .spNav__list{ list-style:none; margin:0; padding:0; text-align:center; }
  .spNav__list li{ margin:14px 0; }
  .spNav__list a{ font-family:'STIX Two Text',serif; font-size:22px; letter-spacing:.04em; color:#3C3B39; padding:10px 16px; display:inline-block; }

  /* open状態 */
  #spNav.is-open{ pointer-events:auto; }
  #spNav.is-open .spNav__overlay{ opacity:1; }
  #spNav.is-open .spNav__panel{ transform:translateX(0); }

  /* SPではPC用サイドメニューは非表示 */
  .sideMenu{ display:none !important; }
}
/* ==== SPナビ 最終オーバーライド ==== */
.hamburger{ display:none; } /* PCは出さない */

@media (max-width:980px){
  #hamburger.hamburger{
    display:block !important;
    position:fixed; right:14px; top:14px; z-index:10000;
    width:44px; height:44px; padding:0; border:0; background:transparent;
    -webkit-tap-highlight-color:transparent; touch-action:manipulation; cursor:pointer;
  }
  #hamburger .hamburger__bar,
  #hamburger .hamburger__bar::before,
  #hamburger .hamburger__bar::after{
    position:absolute; left:50%; top:50%;
    width:28px; height:2px; background:#3C3B39; content:"";
    transform:translate(-50%,-50%);
  }
  #hamburger .hamburger__bar::before{ transform:translate(-50%,-10px); }
  #hamburger .hamburger__bar::after { transform:translate(-50%,  8px); }

  #spNav.spNav{ position:fixed; inset:0; z-index:9999; pointer-events:none; }
  .spNav__overlay{ position:absolute; inset:0; background:rgba(0,0,0,.25); opacity:0; transition:opacity .18s ease; }
  .spNav__panel{
    position:absolute; top:0; right:0; height:100%;
    width:78vw; max-width:320px;
    background:rgba(255,253,253,.96);
    box-shadow:-12px 0 24px rgba(0,0,0,.16);
    transform:translateX(100%); transition:transform .22s ease;
    display:flex; align-items:center; justify-content:center;
  }
  .spNav__list{ list-style:none; margin:0; padding:0; text-align:center; }
  .spNav__list li{ margin:14px 0; }
  .spNav__list a{ font-family:'STIX Two Text',serif; font-size:22px; letter-spacing:.04em; color:#3C3B39; padding:10px 16px; display:inline-block; }

  #spNav.is-open{ pointer-events:auto; }
  #spNav.is-open .spNav__overlay{ opacity:1; }
  #spNav.is-open .spNav__panel{ transform:translateX(0); }

  .sideMenu{ display:none !important; } /* SPではPCメニュー隠す */
}
/* ==== SPドロワー：影のにじみ防止・上寄せ・半透明 ==== */
@media (max-width:980px){
  /* デフォルト状態（閉）では画面外に押し出し＆影なし */
  #spNav.spNav{
    overflow:hidden;                /* 影のはみ出し保険 */
  }
  .spNav__panel{
    transform: translateX(110%);    /* 100%だと影が見える機種があるので少し多めに */
    box-shadow: none;               /* 閉時は影を消す */
    background: rgba(255,253,253,.70); /* 半透明の白 */
    display: flex;
    align-items: flex-start;        /* ← 上部から配置 */
    justify-content: flex-start;
    padding: max(16px, env(safe-area-inset-top)) 16px 20px; /* 上に余白+ノッチ対応 */
  }

  /* 開いたときだけ影を出す＆スライドイン */
  #spNav.is-open .spNav__panel{
    transform: translateX(0);
    box-shadow: -12px 0 24px rgba(0,0,0,.16);
  }

  /* リストも上寄せ・左寄せ */
  .spNav__list{
    width: 100%;
    text-align: left;
    margin: 8px 0 0 0;
    padding: 0;
  }
  .spNav__list li{
    margin: 10px 0;
  }
  .spNav__list a{
    display: block;
    padding: 12px 6px;             /* 指で押しやすいタップ領域 */
    font-size: 20px;
  }
}

@media (max-width:480px){
  #business {
    padding-top: 444px;
}
.section--bf .arch {
    padding-top: 14px;
}
    .section--bf .bf-list {
        width: calc(100% - 66px);
        margin: 0 auto;
    }
    .bf-row {
        padding: 15px 12px;
    }
#belief {
    margin-top: 100px;
}
.space200 {
    display: block;
    height: 432px;
}
.shinnenp {
    line-height: 29px;
}
.profileGrid {
  line-height: 1.4;
}
.section--profile .profileGrid dd {
    width: auto;
    margin: 0 0 0.8em 0;
    letter-spacing: normal;
}
#company {
    margin-top: 102px;
}
.section--bf .bf-intro {
    font-size: 15px;

}
.section--profile .profileGrid {
    display: grid
;
    grid-template-columns: 1fr;
    margin-top: 225px;
}
.section--profile .profileGrid dt, .section--profile .profileGrid dd {
    padding-left: 26px;
    line-height: 1.6;
}
}
/* ==== モバイルだけ：文字サイズの“自動拡大”禁止＆見え方を統一 ==== */
@media (max-width:980px){
  /* 自動テキスト拡大を止める（iOS/Android） */
  html, body{
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  /* レンダリング差の抑制＋ベースのサイズ/行間を固定 */
  body{
    font-size: 16px;              /* ベース */
    line-height: 24px;            /* 行送り24 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-synthesis-weight: none;
    font-synthesis-style: none;
    font-optical-sizing: none;
  }

  /* 入力時のiOSズーム防止（16px未満でズームする） */
  input, textarea, select{
    font-size: 16px;
  }

  /* 例：見出しなども行間をpxで固定（必要に応じて） */
  .section__title{
    line-height: 40px;
  }

  /* iOSだけ微差が出るときの微調整（任意） */
  @supports (-webkit-touch-callout: none){
    .contactIntro, .policyDoc{
      letter-spacing: 0.02em;
    }
  }
}
.sideMenu__list a:hover {
    color: #969089;
}
