/* ================================   Base================================ */* {  box-sizing: border-box;}body {  margin: 0;  color: #111;  background: #fff;  font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Noto Sans JP', sans-serif;}/* ================================   Device toggles  (統一: 960px未満＝SP)================================ */.pc-only {  display: block !important;}.sp-only {  display: none !important;}@media (max-width: 959.98px) {  .pc-only {    display: none !important;  }  .sp-only {    display: block !important;  }}/* ================================   Header================================ */.site-header {  background: #fff;}.header-wrap {  width: min(1000px, 100%);  margin-inline: auto;  display: grid;  grid-template-columns: 380px 600px;  column-gap: 20px;  align-items: center;}.h-left img {  display: block;  width: 100%;  height: auto;}.h-right {  display: grid;  row-gap: 10px;}.h-ttl {  display: block;  width: 100%;  height: auto;}.h-row {  display: flex;  align-items: center;  gap: 38px;}.h-cashless {  width: 170px;  height: auto;  display: block;}.h-tel {  width: 392px;  height: auto;  display: block;}.h-tel-link {  display: inline-block;  text-decoration: none;}@media (max-width:959.98px) { .header-wrap {    grid-template-columns: 1fr;    row-gap: 8px;    padding: 0 0 10px;  }  .h-left {    display: flex;    justify-content: center;  }  .h-left img {    max-width: 360px;    width: 100%;  }  .h-right {    display: none !important;  } /* SPは右側非表示 */}/* ================================   Hero================================ */.hero {  background: #fff;  max-width: 1600px;  margin: 0 auto;}.hero-inner {  max-width: 1755px;  margin: 0 auto;}.hero-img {  display: block;  width: 100%;  height: auto;}/* ================================   POINT================================ */.point {  background: #fff;  padding: 24px 0 36px;}.point-inner {  width: min(1600px, 100%);  margin-inline: auto;  position: relative;}.point img {  display: block;  width: 100%;  height: auto;  border-radius: 0;}.point-img-pc {  display: block;}.point-img-sp {  display: none !important;}@media (max-width:959.98px) {  .point {    padding: 0;  }  .point-inner {    padding: 0;  }  .point-img-pc {    display: none !important;  }  .point-img-sp {    display: block !important;  }  .point-img-sp-1 {    margin-bottom: 0;    position: relative;    z-index: 1;  }  .point-img-sp-2 {    position: relative;    z-index: 2;    margin-top: -33px;  }}/* ===== Compare（PCを安定させる） ===== */.compare { background:#fff; padding:28px 0 40px; }.compare-title{  display:block; width:100%; max-width:1600px; margin:0 auto 10px;}/* 背景はCSSに移動（cover） */.compare-bg-wrap{  position:relative;  max-width:1600px;  margin:0 auto;  background:url("../../images/compare-contents-bg_pc.webp") center/cover no-repeat;  /* カードの上下に余白を持たせて見切れ防止（可変） */  padding:clamp(24px,3.2vw,48px) 10px;}/* 旧：PC用のimg背景は隠す */.compare-bg{ display:none !important; }/* オーバーレイではなく通常フローでカード化 */.compare-content{  position:relative;        /* ← absoluteをやめる */  left:auto; right:auto; top:auto; bottom:auto; transform:none;  width:min(1000px, calc(100% - 24px));  margin:0 auto;  background:rgba(255,255,255,.9);  border-radius:16px;  padding:clamp(16px,1.8vw,22px) clamp(24px,3.8vw,60px);  display:flex;  flex-direction:column;  gap:clamp(10px,1.2vw,14px);  box-shadow:0 10px 30px rgba(0,0,0,.06);}.compare-row{  display:grid;  grid-template-columns:1fr 1fr;  gap:clamp(20px,2.5vw,40px);  align-items:center;}.compare-row .col-img img{ display:block; width:100%; height:auto; border-radius:10px; }.compare-ttl-img{  display:block; width:100%; max-width:960px; height:auto;  margin:clamp(20px,3vw,60px) 0 0;}.compare-text{ margin:clamp(14px,2vw,30px) 0 0; line-height:1.7; font-size:18px; color:#222; }@media (max-width:959.98px) {  .compare {    padding: 18px 0 24px;  }  .compare-title {    margin-bottom: 6px;  }  .compare-content {    position: static;    transform: none;    width: 100%;    margin: -14px auto 0;    padding: 16px 20px;    border-radius: 12px;  }  .compare-row {    grid-template-columns: 1fr;    gap: 14px;  }  .row-2 .col-img {    order: 2;  }  .compare-bg {    display: none !important;  } /* SPはPC用背景を非表示に */  .compare-text {    font-size: 17px;    line-height: 1.6;  }}/* compare セクション全体の横はみ出しを物理的にカット */.compare{ overflow-x: clip; /* Safari古い場合は hidden にしてOK */ }/* タイトル用のラッパー：中央寄せ＋最大1600px、SPだけ左右に12px */.compare-title-wrap{  max-width:1600px;  margin:0 auto 10px;  padding:0;  box-sizing:border-box;}.compare-title{  display:block;  width:100%;  height:auto;}/* SP は左右に 12px だけラッパー側で余白を持たせる（= 100%幅でもはみ出さない） */@media (max-width:959.98px){  .compare-title-wrap{ padding-inline:0; }}/* ================================   Compare List（単一画像）================================ */.compare-list {  padding: 20px 0 28px;}.compare-list-inner {  width: min(1000px, 100%);  margin-inline: auto;  padding: 0 10px;}.compare-list-img {  display: block;  width: 100%;  height: auto;}@media (max-width:959.98px) {  .compare-list {    padding: 16px 0 22px;  }  .compare-list-inner {    padding: 0;  }  .compare-list-img {    border-radius: 0;    box-shadow: none;  }}/* ================================   Media Intro（メディア紹介）================================ */.media-intro{  background:#fff;  padding:20px 0 0;}.media-bg-wrap{  position:relative;  max-width:1600px;  margin:0 auto;}.media-bg{ display:block; width:100%; height:auto; }/* 調整用（必要なら数値だけ変えてOK） */:root{  --media-copy-top-pc: 74%;           /* 右パネルの“中心”の縦位置（%） */  --media-copy-right-pc: clamp(16px, 15vw, 290px); /* 右からの余白 */}/* 右側の白いパネル */.media-copy{  position:absolute;  top: var(--media-copy-top-pc);  right: var(--media-copy-right-pc);  transform: translateY(-50%);        /* 縦方向を中央基準に */  width: clamp(420px, 40vw, 560px);    /* 画面に応じて伸縮 */  background: rgba(255,255,255,.9);  border-radius:12px;  padding: 24px 28px;  color:#222;  box-shadow:0 8px 24px rgba(0,0,0,.08);  backdrop-filter:saturate(1.05) blur(1px);  display:flex;  flex-direction:column;  gap:18px;  /* ← これらの固定値は削除してください  top:600px;  right:300px;  */}.media-copy-text{ line-height:1.85; font-size:15px; margin:0; }.media-copy-logos img{ display:block; width:100%; height:auto; border-radius:8px; }.media-logos{ display:none !important; }/* SP */@media (max-width: 959.98px){  .media-intro{ padding:0; }  .media-bg-wrap{ padding:0; }  .media-bg{ }  .media-copy {    top: 71.5%;    left: 5%;    right: auto;    transform: translateY(-50%);    width: 90%;    padding: 25px 25px 35px;    border-radius: 10px;    gap: 45px;  }  .media-copy-text{ font-size:16px; line-height:1.6; }}/* ================================   Nationwide（日本全国 出張対応）================================ */.nationwide {  padding:0;}.nationwide-bg {  background: #efebc0;  max-width: 1600px;  margin: 0 auto;  padding: 50px 0;}.nationwide-inner {  width: min(960px, 100%);  margin: 0 auto;}.nationwide-grid {  display: grid;  grid-template-columns: 1fr 1fr;  grid-template-areas:    "title img"    "copy  img";  gap: 0 75px;  align-items: center;}.nw-title {  grid-area: title;}.nw-copy {  grid-area: copy;}.nw-img {  grid-area: img;}.ttl-img {  display: block;  width: 100%;  height: auto;}.nw-copy p {  margin: 0;  font-size: 18px;  line-height: 1.9;  color: #222;}.img-main {  display: block;  width: 400px;  height: auto;}@media (max-width:959.98px){  .nationwide{    padding:0;  }  /* 角丸カードの外へ出ないように */  .nationwide-bg{    padding:40px 20px;    border-radius:0;    overflow: hidden;              /* ←これで飛び出しを物理的に防止 */  }  /* 1カラムに並び替え */  .nationwide-grid{    display:grid;    grid-template-columns: 1fr;    grid-template-areas:      "title"      "img"      "copy";    gap:14px;  }  /* 画像ラップをリセットして中央寄せ・縮小可に */  .nw-img{                        /* 画像ラップのクラス名が違う場合はここを合わせてください */    grid-area: img;    position: static;             /* PCでabsoluteしている場合の保険 */    margin: 0 auto;    width: 100%;    max-width: 520px;             /* 画像の最大サイズ（適宜調整） */    justify-self: center;  }  .nw-img img{    display:block;    width: 100%;                  /* 親幅にフィット */    height: auto;    max-width: 100%;    object-fit: contain;    transform: none !important;   /* PC側でtransformしている場合の保険 */  }  .nw-copy p{    font-size:17px;    line-height:1.6;  }}/* ================================   現在地がわからなくても大丈夫================================ */.nw-addr {  padding: 0px 0 63px;}.nw2-title {  max-width: 1600px;  margin: 0 auto 12px;}.nw2-title img {  display: block;  width: 100%;  height: auto;}.nw2-bg-wrap {  position: relative;  max-width: 1600px;  margin: 0 auto;  padding: 0 10px;}.nw2-bg {  display: block;  width: 100%;  height: auto;  border-radius: 12px;}.nw2-overlay {  position: absolute;  inset: 0;  display: grid;  place-items: center;}.nw2-inner {  width: min(1000px, 100%);  margin: 0 auto;  padding: 20px 6px;}.nw2-grid {  display: grid;  grid-template-columns: minmax(0, 1fr) 580px;  grid-template-areas: "img box";  gap: 24px 30px;  align-items: center;}.nw2-img {  grid-area: img;}.nw2-img img {  display: block;  width: 100%;  height: auto;}.nw2-box {  grid-area: box;  width: 580px;  max-width: 100%;  background: rgba(255, 255, 255, .9);  border-radius: 12px;  box-shadow: 0 8px 24px rgba(0, 0, 0, .08);  backdrop-filter: saturate(1.05) blur(1px);  padding: 35px 35px;}.nw2-box-ttl {  display: block;  width: 100%;  height: auto;  margin-bottom: 10px;}.nw2-text {  margin: 30px 0 0 0;  font-size: 18px;  line-height: 1.7;  color: #222;}@media (max-width:959.98px) {  .nw-addr {    padding: 0;  }  .nw2-title {    margin-bottom: 0;    padding: 0;  }  .nw2-bg-wrap {    padding: 0;  }  .nw2-bg {    border-radius: 0px;  }  .nw2-overlay {    place-items: start center;  }   .nw2-inner {    padding: 0px 10px 10px;  }.nw2-img img {  padding: 30px 0 20px;}  .nw2-grid {    grid-template-columns: 1fr;    grid-template-areas:      "img"      "box";    gap: 14px;  }  .nw2-box {    width: 100%;    border-radius: 10px;    padding: 20px 25px 20px;    margin-top: -15px;  }  .nw2-text {    font-size: 17px;    line-height: 1.6;  }}/* ====== PC時に背景の高さを安定させる設定を追加 ====== *//* 好みで調整できる高さ */:root{  --nw2-min-h: 520px;  /* 最低高さ */  --nw2-ideal: 42vw;   /* 画面幅に応じて伸縮 */  --nw2-max-h: 620px;  /* 最高高さ */}@media (min-width: 960px){  /* 背景土台：安定した高さを作る */  .nw2-bg-wrap{    position: relative;          /* 既に指定済みでもOK：再指定で問題なし */  }  .nw2-bg-wrap::before{    content: "";    display: block;    height: clamp(var(--nw2-min-h), var(--nw2-ideal), var(--nw2-max-h));  }  /* 背景画像：土台いっぱいにcover */  .nw2-bg{    position: absolute;    inset: 0;                    /* .nw2-bg-wrap の内側いっぱい */    width: 100%;    height: 100%;    object-fit: cover;    border-radius: 12px;         /* 既存と同じ角丸を維持 */  }  /* 重ねるレイヤー：白いボックス群 */  .nw2-overlay{    position: absolute;    inset: 0;                    /* 背景と同じ領域に重ねる */    display: grid;    place-items: center;  }}/* ================================   料金案内（背景上にテキスト）================================ *//* 調整用変数 */ :root {  --price02-pc-ar: 1000/1500; /* background aspect ratio (w/h) */  --price02-sp-ar: 365/1700;  --price02-pc-note-top: 50%; /* テキストボックス縦位置（%） */  --price02-sp-note-top: 33%;}/* 上段 */.price01-pc {  width: min(1060px, 95vw);  margin: 0 auto -1px;}.price01-pc img {  width: 100%;  display: block;}.price01-sp {  width: 100%;  margin: 0 auto 28px;}.price01-sp img {  width: 100%;  display: block;}/* 下段：背景として設置（PC） */.price02-pc-bg {  position: relative;  width: min(1000px, 95vw);  margin: 0 auto;  aspect-ratio: var(--price02-pc-ar);  background: url("../../images/price02_pc_n.webp") no-repeat center top / contain;}/* 下段：背景として設置（SP） */.price02-sp-bg {  position: relative;  width: 100%;  margin: -30px auto 0;  aspect-ratio: var(--price02-sp-ar);  background: url("../../images/price02_sp_n2.webp") no-repeat center top / contain;}/* 画像上に重ねるテキストボックス（共通） */.price-note {  position: absolute;  left: 50%;  transform: translateX(-50%);  line-height: 1.6;}/* PC用 */.price-note.pc {  top: var(--price02-pc-note-top);  width: min(780px, 90%);  padding: 20px 78px;  font-size: 17px;}/* SP用 */.price-note.sp {  top: var(--price02-sp-note-top);  width: clamp(280px, 86%, 680px);  padding: 30px 14px;  font-size: 16px;  border-radius: 10px;}/* ================================   防犯性の高い鍵にも対応（Key Types）================================ */.keytypes-sec {  position: relative;  padding: 64px 0px 60px;  background: #f7f7f7 url("../../images/keytypes-bg01_pc.webp") center top / cover no-repeat;  isolation: isolate;  max-width: 1600px;  margin: 0 auto;}.keytypes-sec::before {  content: "";  position: absolute;  inset: 0;  background: rgba(255, 255, 255, .2);  z-index: 0;}.keytypes-inner {  position: relative;  z-index: 1;  max-width: 1000px;  margin: 0 auto;}/* タイトル（PC/ SPは .pc-only / .sp-only で出し分け） */.keytypes-ttl {  width: min(100%, 1060px);  display: block;  margin: 0 auto;}/* カード共通 */.kt-card {  background: rgba(255, 255, 255, .96);  border-radius: 18px;  box-shadow: 0 10px 28px rgba(0, 0, 0, .08);  padding: 40px;  margin: 0 auto 26px;  display: grid;  grid-template-columns: 240px 1fr;  gap: 15px;}.kt-top {  display: flex;  align-items: center;}.kt-thumb img {  width: 220px;  height: 220px;  object-fit: cover;  border-radius: 9999px;  box-shadow: 0 0 0 10px #fff, 0 6px 18px rgba(0, 0, 0, .18);}.kt-h {  font-weight: 800;  color: #e43131;  margin: 0 0 20px;  font-size: 34px;  display: flex;  gap: 14px;  align-items: baseline;  border-bottom: 1px #dcdcdc solid;  padding: 0 0 20px;}.kt-h span {  font-size: 20px;  font-weight: 700;  color: #b7b9bc;  padding-left: 20px;}.kt-body p {  margin: 0;  font-size: 16px;  line-height: 1.95;  color: #222;}/* SPレイアウト */@media (max-width:767.98px) {   .keytypes-sec {    padding: 20px 20px 14px;    background-size: 180% auto;    background-position: center 0;  }  .keytypes-ttl {    width: 94%;    margin-bottom: 0;  }   .kt-card {    display: block;    padding: 20px 30px 35px;    border-radius: 14px;  }  .kt-top {    display: flex;    align-items: center;    gap: 14px;    margin-bottom: 12px;  }  .kt-thumb img {    width: 114px;    height: 114px;    box-shadow: none;  }    .kt-h {    font-size: 22px;    gap: 10px;    border-bottom: none;    margin: 10px 0 0;  }  .kt-h span {    font-size: 14px;    display: block;  }  .kt-body {    padding-top: 10px;    border-top: 1px solid #eee;  }  .kt-body p {    font-size: 16px;    line-height: 1.7;  }}/* ===== 対応可能な鍵の種類（修正版） ===== */.keys-all{  padding:24px 0 0;}/* PC：背景はwrapにcoverで敷き、オーバーレイは通常フローにする */.keys-all-bg-wrap{  position:relative;  max-width:1600px;  margin:0 auto;  background:#efebc0 url("../../images/keytypes-bg02_pc.webp") center / cover no-repeat;  /* 背景の余白（上下左右をここで微調整） */  padding:clamp(12px,2vw,18px) clamp(12px,1.8vw,16px) clamp(28px,4vw,44px);}.keys-all-bg-img{ display:none !important; }  /* PCは<img>背景を使わない */.keys-all-overlay{  position:static;           /* ←絶対配置をやめる */  display:flex;  align-items:flex-start;  justify-content:center;  padding:0;}.keys-all-inner{  width:min(1000px,100%);    /* PCは1000px中央寄せ */  margin:0 auto;  padding:0 10px;  display:flex;  flex-direction:column;  align-items:center;}.keys-all-title img{ display:block; width:100%; height:auto; }.keys-all-contents img{  display:block; width:100%; height:auto;  border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,.08);}/* SP：これまで通りセクション全体に背景、通常フロー */@media (max-width:959.98px){  .keys-all{    background:#efebc0 url("../../images/keytypes-bg02_pc.webp") center / cover no-repeat;    padding:16px 0;  }  .keys-all-bg-wrap{    max-width:none; padding:0 12px; background:none; border-radius:10px;  }  .keys-all-bg-img{ display:none !important; }  .keys-all-overlay{ position:static; padding:0; }    .keys-all-inner {    width: 100%;    margin: 0 auto;    padding: 0 5px 5px;    row-gap: 15px;  }  .keys-all-contents img{ border-radius:10px; box-shadow:none; }}/* ===== Flow ===== */.flow {  padding: 0;  margin-bottom: 190px;}.flow-title {  max-width: 1600px;  margin: 0 auto ;}.flow-title img {  display: block;  width: 100%;  height: auto;}.flow-bg-wrap{  position: relative;  max-width: 1600px;  margin: 0 auto;  /* ← PCも背景をCSSにする */  background: url("../../images/flow-bg_pc.webp") center top / cover no-repeat;  /* 背景の“最低高さ”を確保（1280〜1440でも被らない） */  min-height: clamp(550px, 30vw, 590px);  /* 念のため下に少しだけ余白を足しておく */  padding-bottom: clamp(24px, 3vw, 56px);}/* PCでは <img class="flow-bg"> を隠す */.flow-bg{ display:none; }.flow-overlay{  position: absolute;  inset: clamp(12px, 1.4vw, 24px) 0 clamp(20px, 2.5vw, 36px);  display: grid;  place-items: center;}/* オーバーレイ側の横幅を少しだけ可変にして背の伸びを抑える */.flow-inner{  width: min(960px, 92%);  margin: 0 auto;  padding: 18px 6px;}.flow-img {  display: block;  width: 100%;  height: auto;}@media (max-width:959.98px) {  .flow {    padding: 0px 0 24px;    /* SPはPC用の背景をセクション全体にcoverで敷く */    background: url("../../images/flow-bg_pc.webp") center top / cover no-repeat;    margin-bottom: 0px;  }  .flow-title {    margin-bottom: 8px;    padding: 0;  }  .flow-bg-wrap {    max-width: none;    padding: 0;  }  /* PC用の背景imgはSPでは非表示。背景は上の .flow に適用 */  .flow-bg {    display: none !important;  }  /* オーバーレイは相対配置に戻して上下の余白もスマホ向けに */  .flow-overlay {    position: relative;  }  .flow-inner {    width: 100%;    padding: 0px 15px 30px;  }}/* PC/SP 切替 */.pc-only {  display: block}.sp-only {  display: none}@media (max-width:959.98px) {  .pc-only {    display: none !important  }  .sp-only {    display: block !important  }}/* ===== 共通 ===== */.cta {  color: #fff;  padding: 24px 0 36px}.cta-outer {  width: min(1000px, 100%);  margin-inline: auto;  padding: 0 10px;  position: relative;}.cta-title-top {  position: relative;  z-index: 2;  display: block;  width: 100%;  height: auto;  margin: 0 auto -33px}.cta-panel {  position: relative;  z-index: 1;  margin-top: 0 !important;}.cta-bg {  display: block;  width: 100%;  height: auto;  border-radius: 0 0 14px 14px}.cta-right {  position: absolute;  right: min(40px, 4%);  top: 50%;  transform: translateY(-50%);  width: min(590px, 58%);  display: flex;  flex-direction: column;  align-items: flex-end;  gap: 12px;}.cta-right-ttl {  display: block;  width: 100%;  max-width: 580px;  height: auto}.cta-right-tel {  display: block;  width: 100%;  height: auto;  max-width: 590px}.cta-right-tel-link {  display: block}/* 時間ラベル（共通） */.cta-time-box {  position: relative}.cta-time-bg {  display: block;  width: 87%;  height: auto;  margin-left: 20px;  margin-top: 5px;}.cta-time-text {  position: absolute;  inset: 0;  display: flex;  align-items: center;  justify-content: center;  font-weight: 600;  letter-spacing: .02em;  color: #111;}#nowTime2 {  font-size: 1.6em;  color: #bc1919;}.cta-line-btn {    max-width: 430px;}.cta-time-text .small {  font-size: 1.2em;  margin-left: .3em;  opacity: .9}.cta-line-btn img {  width: min(390px, 80%);  height: auto;  display: block}/* ===== SP：スクショ準拠の並び ===== */@media (max-width:959.98px) {  .cta {    padding: 0  } /* 上下の余白は背景内で調整 */  /* 背景をcoverで全体に。人物は右側に来る画像なので right top に固定 */  .cta-outer {    background: url("../../images/cta-bg-sp2.png") right top / cover no-repeat;    border-radius: 0;    padding: 20px 8px 30px;  }  .cta-bg {    display: none !important  }  .cta-title-top {    display: none  }  .cta-panel {    margin-top: 0  }  .cta-right {    position: relative;    left: auto;    right: auto;    top: auto;    transform: none;    width: 100%;    align-items: flex-start;    gap: 10px;    padding: 0;  }  /* 2. タイトル（左側） */  .cta-sp-ttl {    width: min(520px, 70%);    height: auto;    margin: 2px 0 6px 6px; /* 背景の左余白に合わせて微調整 */    display: block;  }  /* 3. 時間表示（230px固定・タイトル直下左寄せ） */  .cta-time-box {    width: 230px;    margin-left: 5px;  }  .cta-time-bg {  display: block;  width: 96%;  height: auto;  margin-top: 0px;  margin-left: 0px;}  /* 2行表示の調整（任意） */  .cta-time-text {    flex-direction: column;    text-align: center;    line-height: 1.2;    padding: 2px 4px  } .cta-time-text #nowTimeSp {        font-weight: 700;        margin-right: 20px;        margin-bottom: 3px;        color: #bc1919;    }  .cta-time-text #nowTimeSp::before {    content: "「"  }  .cta-time-text #nowTimeSp::after {    content: "」現在"  }  .cta-time-text .small {    font-size: 0;    line-height: 0;    margin-right: 15px  }  .cta-time-text .small::after {    content: "お電話すぐにつながります";    font-size: 15px;    line-height: 1.2;    font-weight: 600;    display: block  }  /* 4. 電話番号（赤帯の中で横幅いっぱい） */  .cta-right-tel {    width: calc(100% - 12px);    max-width: none;    display: block;    margin: 3px auto 0;  }  /* 5. LINEボタン（人物の下＝赤帯直下の緑帯） */  .cta-line-area {    background: #0b6b3a;    width: 100%;    padding: 16px 0 20px;  }  .cta-line-area .cta-line-btn-sp img {    display: block;    margin: 0 auto;    width: min(560px, 92%);    height: auto;  }}/* ===== 3つの強み ===== */.strong {  background: #f7e9b6;  padding: 28px 0 40px;  max-width: 1600px;  margin: 0 auto;}.strong-inner {  width: min(1000px, 100%);  margin: 0 auto;  padding: 0 10px;}/* タイトル */.strong-title {  display: block;  width: min(1060px, 100%);  margin: 0 auto 18px;}.strong-title img {  display: block;  width: 85%;  height: auto;}/* 行レイアウト（PC：横並び） */.strong-row {  display: flex;  align-items: center;  gap: 40px;  margin: 0px 0 50px;}.strong-row.flip {  flex-direction: row-reverse;} /* POINT2だけ左右反転 */.strong-img {  flex: 0 0 430px;}.strong-img img {  display: block;  width: 100%;  height: auto;  border-radius: 10px;}.strong-text {  flex: 1 1 auto;  padding: 0 30px;}.strong-point {  display: block;  width: 100%;  max-width: 540px;  margin: 0 0 10px;}.strong-point img {  display: block;  width: 100%;  height: auto;  margin-bottom: 30px;  margin-left: -15px;}.strong-text p {  margin: 0;  font-size: 18px;  line-height: 1.7;  color: #222;}/* SP：縦並び（画像 → ポイントタイトル → テキスト） */@media (max-width: 959.98px) {  .strong {    padding: 20px 0 5px;  }  .strong-inner { padding: 0 12px; }  .strong-title { margin-bottom: 10px; }  .strong-title img { width: 85%; height: auto; margin-left: 25px; }  /* ← ここを“flip も含めて”縦並びに固定する */  .strong-row,  .strong-row.flip {                 /* 追加 */    flex-direction: column;          /* これで上書き */    gap: 12px;    margin: 18px 0;  }  .strong-img { flex: 0 0 auto; width: 100%; }  .strong-img img { border-radius: 10px; }  .strong-point { max-width: none; }  /* PC用の微調整がSPで切れるのを防止 */    .strong-point img {    margin-left: 0;    padding: 0 30px;    margin-top: -50px;  }   /* 追加 */  .strong-text { width: 100%; padding: 0; } /* 追加: はみ出し防止 */  .strong-text p {    font-size: 17px;    line-height: 1.7;    padding: 0 10px 30px;  }}/* ===== Reasons ===== */.reasons {  background: #fff;}.reasons-inner {  max-width: 1600px;  margin: 0 auto;}.reasons-img {  display: block;  width: 100%;  height: auto;}@media (max-width: 959.98px) {  .reasons {    padding: 10px 0 10px;  }  .reasons-inner {    padding: 0 12px;  }}/* 背景はcover、PCはmax1600中央寄せ */.stock {  max-width: 1600px;  background: url("../../images/stock-bg.webp") center/cover no-repeat;  padding: 24px 0 36px;  margin: 0 auto;}.stock-wrap {  max-width: var(--max);  margin: 0 auto;  padding: 18px 10px 56px;}/* タイトル（PC/ SP切替） */.stock-title {  display: block;  height: auto;}.stock-title--pc {  width: min(900px, 94%);  margin: 0 auto 8px;}.stock-title--sp {  display: none;}.stock-panel {  width: min(1000px, 90%);  margin: 0 auto;  background: #fdf1db;  border-radius: 12px;  padding: 5px 0px 0px 60px;  display: grid;  grid-template-columns: 500px 350px;  gap: 36px;  align-items: center;}.stock-copy h3 {  margin: 0 0 50px;  font-weight: 600;  font-size: 2.2em;}.stock-copy p {  margin: 0;  line-height: 1.5;  font-size: 17px;}.stock-person {  width: 350px;  position: relative;  z-index: 2;  margin-left: auto;  display: block;}.stock img {  max-width: 100%;  height: auto;} /* 保険 *//* SP */@media (max-width:959.98px) {  .stock-copy h3 {    margin: 0 0 30px;    font-weight: 600;    font-size: 1.8em;  }  .stock-wrap {    padding: 0;  }  .stock-title--pc {    display: none;  }  .stock-title--sp {    display: block;    width: min(360px, 90%);    margin: 0 auto -50px;  }  .stock-panel {    display: block;    padding: 35px 25px 40px;  }  .stock-person {    display: none;  }}/* ===== Stock（PCのみ最終調整） ===== */@media (min-width:960px) {  /* タイトルは人物の“後ろ側”にしておく（人物が前に来る） */  .stock-title--pc {    position: relative;    z-index: 3;  }  .stock-panel {    height: 320px;    overflow: visible; /* ←人物を上に出すため必須 */  }  /* 人物：高さ固定=480px、タイトル側へ持ち上げて最前面 */  .stock-person {    position: relative;    z-index: 5; /* ←タイトル(3)より前 */    height: 480px; /* ←指定どおり */    width: auto; /* 高さ基準で比率維持 */    margin-top: -170px; /* ←被せ量。-110〜-160pxで微調整OK */    margin-left: auto; /* 右寄せキープ（グリッド右カラム内） */    pointer-events: none; /* クリック干渉を避けたい場合 */  }}/* ===== FAQ ===== */.faq {  background: #fff;  padding: 0 0 60px;}.faq-title {  max-width: 1600px;  margin: 0 auto 50px;}.faq-title img {  display: block;  width: 100%;  height: auto;}.faq-inner {  width: min(1000px, 100%);  margin: 0 auto;  padding: 0 10px;}.faq-grid {  display: grid;  grid-template-columns: repeat(2, minmax(0, 1fr)); /* 1000pxで2列 → 480px/列（gap40px） */  gap: 22px 40px;}/* 各ボックス */.faq-item {  width: 100%;}.faq-q {  position: relative;  background: #111;  color: #fff;  border-radius: 12px 12px 0 0;  min-height: 74px;  padding: 18px 16px 16px 78px;  display: flex;  align-items: center;}.faq-qtext {  margin: 0;  font-weight: 600;  line-height: 1.45;  font-size: 18px;}.faq-qmark {  position: absolute;  left: 10px;  top: 50%;  transform: translateY(-50%);  width: 56px;  height: auto;  display: block;}.faq-a {  position: relative;  margin-top: 0;  background: #fdf1db;  border-radius: 0 0 12px 12px;  padding: 26px 26px 35px 78px;}.faq-a p {  margin: 0;  line-height: 1.6;  color: #222;  font-size: 17px;}.faq-amark {  position: absolute;  left: 12px;  top: 16px;  width: 46px;  height: auto;  display: block;}/* 追加 */.faq-item{  display: grid;  grid-template-rows: auto 1fr; /* Qは高さ自動、Aが残りを埋める */}.faq-a{  height: 100%;          /* 行の残りをしっかり埋める */  display: flex;         /* 中央寄せしたくないなら外してOK */  align-items: center;   /* お好みで baseline 等に変更可 */}/* SP（960px未満）：縦並び＋余白調整 */@media (max-width:959.98px) {  .faq {    padding: 16px 0 24px;  }  .faq-title {    padding: 0;    margin-bottom: 25px;  }  .faq-inner {    padding: 0 12px;  }  .faq-grid {    grid-template-columns: 1fr;    gap: 14px;  }  .faq-q {    padding: 20px 12px 20px 70px;    min-height: auto;  }  .faq-qtext {    font-size: 18px;  }  .faq-qmark {    left: 10px;    width: 45px;  }  .faq-a {    padding: 25px 20px 30px 70px;  }  .faq-a p {    font-size: 16px;    line-height: 1.6;  }  .faq-amark {    left: 10px;    top: 25px;    width: 42px;  }}/* ===== Security（防犯対策）===== */.security {  padding: 26px 0 0;}.security-bg {  max-width: 1600px;  margin: 0 auto;  background: url("../../images/security-bg.webp") center / cover no-repeat;  padding: 50px 0px 60px;  position: relative;  overflow: hidden;}/* タイトル */.security-ttl {  display: block;  width: 100%;  height: auto;}.security-ttl--pc {  width: min(1040px, 96%);  margin: 0 auto 14px;}.security-ttl--sp {  display: none;}/* コンテンツ幅 */.security-inner {  width: min(1000px, 100%);  margin: 0 auto;  display: grid;  row-gap: 28px;}/* 各アイテム：左 330px（円形）+ 右 本文 */.s-item {  display: grid;  grid-template-columns: 300px 1fr;  column-gap: 26px;  align-items: start;}.s-thumb img {  width: 300px;  height: 300px;  object-fit: cover;  border-radius: 9999px;  box-shadow: 0 10px 26px rgba(0, 0, 0, .08);  display: block;}.s-body {  position: relative;  margin-top: 60px;}/* リボン（白枠に被せる） */.s-ribbon {  position: relative;  z-index: 2;  display: block;  margin: 0 0 -20px 20px; /* ↓カードに少し重なる */}.s-ribbon.r-360 {  width: 360px;}.s-ribbon.r-310 {  width: 310px;}/* 説明カード */.s-card {  position: relative;  z-index: 1;  background: #fff;  border-radius: 14px;  box-shadow: 0 10px 28px rgba(0, 0, 0, .06);  padding: 30px 40px;}.s-card p {  margin: 0 0 10px;  line-height: 1.5;  color: #222;  font-size: 18px;}.s-card p:last-child {  margin-bottom: 0;}/* --- SP（960px未満）--- */@media (max-width: 959.98px) {  .security {    padding: 0;  } .security-bg {    border-radius: 0;    padding: 40px 15px 40px;    background: radial-gradient(900px 360px at 50% -60px, rgba(255, 255, 255, .95), rgba(240, 240, 240, .92) 40%, rgba(230, 230, 230, .9) 60%, rgba(220, 220, 220, .85) 100%);  }  .security-ttl--pc {    display: none;  }  .security-ttl--sp {    display: block;    width: min(640px, 96%);    margin: 0 auto 10px;  }  .security-inner {    width: 100%;    row-gap: 18px;  }  .s-body {  margin-top: -30px;}  .s-item {    grid-template-columns: 1fr;    row-gap: 10px;  }  .s-thumb {    display: flex;    justify-content: center;  }  .s-thumb img {    width: min(300px, 86%);    height: auto;    border-width: 10px;  }.s-ribbon.r-310 {  width: 360px;}  .s-ribbon {    width: min(94%, 420px);    margin: 0px 0px -25px 0px;  }  .s-card {    border-radius: 0 0 12px 12px;    padding: 30px 25px;  }  .s-card p {    font-size: 17px;    line-height: 1.6;  }}/* ===== Estimate 共通 ===== */.estimate {  padding: 0 0 40px;  background: #fff;}/* 1) セクションタイトル（max1600 中央） */.estimate-ttl {  max-width: 1600px;  margin: 0 auto 30px;}.estimate-ttl img {  display: block;  width: 100%;  height: auto;}/* 2) 3カード（1000px/中央） */.estimate-cards {  width: min(1000px, 100%);  margin: 0 auto;  padding: 30px 10px 30px;  display: grid;  grid-template-columns: repeat(3, 320px);  justify-content: center;  gap: 20px;}.estimate-card {  background: #fff;  border-radius: 12px;  box-shadow: 0 8px 22px rgba(0, 0, 0, .06);  padding: 0;}.estimate-card .card-ttl {  display: block;  width: 100%;  height: auto;}.estimate-card .card-img img {  display: block;  width: 100%;  height: auto;}.estimate-card .card-text {  margin: 30px 25px 30px;  font-size: 18px;  line-height: 1.4;  color: #222;}/* 3) 注意喚起タイトル（PCのみ背景 = max1600 cover） */.estimate-alert {  position: relative;  margin-top: 22px;}.estimate-alert-bg {  position: relative;  max-width: 1000px;  margin: 0 auto;  height: 400px; /* 背景の見栄え用 */  border-radius: 12px;  background: url("../../images/estimate-ttl05-bg.webp") center/cover no-repeat;}.estimate-alert-ttl {  position: relative;  max-width: 1600px;  margin: -320px auto 0; /* 背景上に重ねる（高さに合わせて調整） */  padding: 0 10px;  display: flex;  justify-content: center;}.estimate-alert-ttl img {  width: min(920px, 94%);  height: auto;  display: block;  margin: 0 auto;}/* 4) 黒の注意ボックス（1000px中央／PC2列） */.estimate-warnings {  width: min(1000px, 100%);  margin: -1px auto 0;  padding: 0 10px;  display: grid;  grid-template-columns: 1fr 1fr;  gap: 25px;}.warn-box {  background: #000;  color: #fff;  border-radius: 12px;  padding: 30px;}.warn-box h3 {  text-align: center;  margin: 0 0 40px;  font-weight: 600;  font-size: 36px;  line-height: 1.35;  color: #fffb1a;}.warn-box p {  margin: 0;  font-size: 18px;  line-height: 1.6;}/* ===== SP（～959.98px） ===== */@media (max-width:959.98px) {  .estimate {    padding: 0px 0 28px;  }  .estimate-ttl {    padding: 0;  }  .estimate-cards {    width: 100%;    padding: 0 12px;    grid-template-columns: 1fr; /* 縦並び */    gap: 14px;  }   .estimate-card {    padding: 12px;    margin: 0 20px 15px;  }  .estimate-alert-bg {    display: none !important;  } /* SPは背景なし */  .estimate-alert-ttl {    margin: 8px auto 0;    padding: 0 12px;  }  .estimate-alert-ttl img {    width: min(560px, 96%);  }  .estimate-warnings {    width: 100%;    padding: 0 12px;    grid-template-columns: 1fr; /* 縦並び */    gap: 12px;  }  .warn-box {    padding: 25px 30px 40px;  }    .warn-box h3 {  text-align: center;  margin: 0 0 20px;  font-weight: 600;  font-size: 31px;  line-height: 1.35;  color: #fffb1a;}    .warn-box p {  margin: 0;  font-size: 17px;  line-height: 1.6;} .estimate-card .card-text {    margin: 25px 10px 30px;    font-size: 17px;    line-height: 1.6;    color: #222;  }}/* ===== Payment（お支払い方法） ===== */.payment {  background: #fff;  padding: 24px 0 36px;}.payment-title {  max-width: 1600px;  margin: 0 auto 50px;}.payment-ttl {  display: block;  width: 100%;  height: auto;}/* PC: 1000px中央／3カラム×320px（gap20で合計1000） */.payment-cards {  width: min(1000px, 100%);  margin: 0 auto;  display: grid;  grid-template-columns: repeat(3, 340px);  column-gap: 0px;  justify-content: space-between; /* 1000pxにピタッと収まる */}.pay-card img {  display: block;  width: 100%;  height: auto;}/* SP: 縦並び */@media (max-width:959.98px) {  .payment {    padding: 16px 0 24px;  }  .payment-title {    padding: 0px;    margin-bottom: 6px;  }  .payment-cards {    width: 100%;    padding: 10px 0px 0;    display: block;  }  .pay-card + .pay-card {    margin-top: 12px;  }}/* Coupon */.coupon {  padding: 24px 0 36px;  background: #fff;}.coupon-inner {  max-width: 1600px;  margin: 0 auto;}.coupon-img {  display: block;  width: 100%;  height: auto;}@media (max-width:959.98px) {  .coupon {    padding: 0px 0 0px;  }  .coupon-inner {    padding: 0;  }  .coupon-img {  }}/* ===== Footer ===== */.site-footer {  background: #c91717; /* ブランドの赤に寄せる */  color: #fff;}.footer-inner {  width: min(1600px, 100%);  margin: 0 auto;  padding: 22px 10px 26px;}/* 上部のリンク（区切り線付き） */.footer-nav {  list-style: none;  margin: 0;  padding: 0;  display: flex;  justify-content: center;  align-items: center;  gap: 28px;  font-weight: 400;  letter-spacing: .06em;}.footer-nav li {  position: relative;  padding: 0 22px;}.footer-nav li + li::before {  content: "";  position: absolute;  left: 0;  top: 50%;  transform: translateY(-50%);  width: 1px;  height: 1.2em;  background: rgba(255, 255, 255, .5);}.footer-nav a {  color: #fff;  text-decoration: none;  display: inline-block;  padding: 4px 0;}.footer-nav a:hover, .footer-nav a:focus {  text-decoration: underline;}/* 細い水平線 */.footer-rule {  width: min(980px, 92%);  height: 1px;  margin: 12px auto 16px;  background: rgba(255, 255, 255, .5);}/* コピーライト */.footer-copy {  display: block;  text-align: center;  font-size: 14px;  letter-spacing: .04em;  opacity: .95;}/* ---- SP調整 ---- */@media (max-width:959.98px) {  .footer-inner {    padding: 18px 12px 22px;  }   .footer-nav {    gap: 10px;    font-size: 11px;  }  .footer-nav li {    padding: 0 10px;  }  .footer-rule {    width: 88%;    margin: 10px auto 12px;  }  .footer-copy {    font-size: 13px;  }}.br-sp {    display: none;}@media (max-width: 600px) {    .br-sp {        display: block;    }}.marker {   background: linear-gradient(transparent 50%,#f2fa1d 50%);}.hover{    transition: 0.3s;    display: block;    text-decoration: none;}.hover:hover{    opacity: 0.7;}.red {    color: #B41013;    font-weight: 600;}  /* ===== Tokusyoho page only ===== */    :root{      --brand-red:#d71818;     /* 鍵星の赤 */      --ink:#222;      --muted:#6b7280;      --paper:#fff;      --bg:#fafafa;      --line:#ececec;      --accent:#fff6e0;    }    body{background:#fff;color:var(--ink);}    .legal-hero{      background:var(--brand-red);      color:#fff;      padding:28px 12px;    }    .legal-hero .inner{      max-width:1000px;      margin:0 auto;    }    .legal-hero h1{      margin:0;      font-size:clamp(22px, 2.8vw, 32px);      font-weight:800;      letter-spacing:.02em;      line-height:1.25;    }    .legal-hero p{      margin:.45em 0 0;      opacity:.9;      font-size:clamp(13px, 1.5vw, 15px);    }    .legal{      background:var(--bg);      padding:28px 12px 60px;    }    .legal .container{      max-width:1000px;      margin:0 auto;    }    .legal-note{      margin:16px 0 10px;      font-size:14px;      color:var(--muted);    }    .legal-table-wrap{      background:var(--paper);      border-radius:12px;      box-shadow:0 10px 30px rgba(0,0,0,.06);      overflow:hidden;      border:1px solid var(--line);    }    table.legal-table{      width:100%;      border-collapse:separate;      border-spacing:0;      table-layout:fixed; /* 文字折返し安定 */    }    .legal-table th,    .legal-table td{      padding:18px 16px;      vertical-align:top;      border-bottom:1px solid var(--line);      word-break:break-word;    }    .legal-table th{      width:28%;      background:var(--accent);      font-weight:700;      text-align:left;    }    .legal-table tr:nth-child(even) td{      background:#fffdf7;    }    .legal-table tr:last-child th,    .legal-table tr:last-child td{      border-bottom:none;    }    .legal-table small{ color:var(--muted); }    .legal-table ul{ margin:.4em 0 0 1.1em; padding:0; }    .legal-table li{ margin:.2em 0; }    /* 連絡先リンク風 */    .linklike{ color:#2563eb; text-decoration:underline; text-underline-offset:2px; }    /* SP 読みやすく */    @media (max-width: 959.98px){      .legal-table th{ width:36%; padding:14px 12px; }      .legal-table td{ padding:14px 12px; font-size:15px; }      .legal-hero{ padding:22px 12px; }    }  /* ===== Privacy page only ===== */    :root{      --brand-red:#d71818;      --ink:#222;      --muted:#6b7280;      --paper:#fff;      --bg:#fafafa;      --line:#ececec;      --accent:#fff6e0;      --link:#2563eb;    }    body{ background:#fff; color:var(--ink); }    .pp-hero{      background:var(--brand-red);      color:#fff;      padding:28px 12px;    }    .pp-hero .inner{      max-width:1000px;      margin:0 auto;    }    .pp-hero h1{      margin:0;      font-size:clamp(22px, 2.8vw, 32px);      font-weight:800;      line-height:1.25;      letter-spacing:.02em;    }    .pp-hero p{      margin:.45em 0 0;      opacity:.9;      font-size:clamp(13px, 1.5vw, 15px);    }    .pp{      background:var(--bg);      padding:28px 12px 60px;    }    .pp .container{      max-width:1000px;      margin:0 auto;    }    /* 目次 */    .pp-toc{      background:var(--paper);      border:1px solid var(--line);      border-radius:12px;      box-shadow:0 10px 30px rgba(0,0,0,.06);      padding:16px 18px;      margin:10px 0 18px;    }    .pp-toc h2{      margin:0 0 8px;      font-size:18px;    }    .pp-toc ol{      margin:0;      padding-left:1.4em;    }    .pp-toc a{      color:var(--link);      text-decoration:underline;      text-underline-offset:2px;    }    /* セクションカード */    .pp-card{      background:var(--paper);      border:1px solid var(--line);      border-radius:12px;      box-shadow:0 10px 30px rgba(0,0,0,.06);      padding:18px 18px;      margin:0 0 16px;    }    .pp-card h2{      margin:0 0 10px;      font-size:20px;      font-weight:800;      line-height:1.35;      padding-left:12px;      border-left:5px solid var(--brand-red);    }    .pp-card h3{      margin:14px 0 6px;      font-size:17px;    }    .pp-card p{ margin:.5em 0; line-height:1.9; }    .pp-card ul{ margin:.3em 0 .8em 1.2em; }    .pp-card li{ margin:.25em 0; }    .pp-small{ color:var(--muted); font-size:13px; }    .pp-contact{      display:grid;      grid-template-columns: 160px 1fr;      border:1px solid var(--line);      border-radius:10px;      overflow:hidden;    }    .pp-contact dt{      background:var(--accent);      padding:12px;      border-bottom:1px solid var(--line);      font-weight:700;    }    .pp-contact dd{      padding:12px;      margin:0;      border-bottom:1px solid var(--line);    }    .pp-contact dt:last-of-type,    .pp-contact dd:last-of-type{ border-bottom:none; }    a.link{ color:var(--link); text-decoration:underline; text-underline-offset:2px; }    @media (max-width:959.98px){      .pp-hero{ padding:22px 12px; }      .pp-card{ padding:14px 14px; }      .pp-card h2{ font-size:18px; }      .pp-card h3{ font-size:16px; }      .pp-contact{ grid-template-columns: 1fr; }      .pp-contact dt{ border-bottom:none; border-right:none; }      .pp-contact dd{ border-top:1px solid var(--line); }    }/* ===== price page only ===== */    :root{      --brand:#d71818;      --ink:#222;      --muted:#6b7280;      --paper:#fff;      --bg:#fafafa;      --line:#ececec;      --accent:#fff6e0;      --link:#2563eb;      --green:#16a34a;    }    body{ background:#fff; color:var(--ink); }    /* ===== Title band ===== */    .price-hero{      background:var(--brand);      color:#fff;      padding:28px 12px;    }    .price-hero .inner{max-width:1000px;margin:0 auto;}    .price-hero h1{      margin:0;      font-size:clamp(22px, 2.8vw, 32px);      font-weight:800;      letter-spacing:.02em;      line-height:1.25;    }    .price-hero p{      margin:.5em 0 0;      opacity:.92;      font-size:clamp(13px, 1.6vw, 15px);    }    /* ===== Wrapper ===== */    .price{      background:var(--bg);      padding:26px 12px 64px;    }    .price .container{      max-width:1000px;      margin:0 auto;    }    /* ===== Intro / Notes ===== */    .price-intro{      background:var(--paper);      border:1px solid var(--line);      border-radius:12px;      box-shadow:0 10px 30px rgba(0,0,0,.06);      padding:16px 18px;      margin:0 0 16px;    }    .price-intro ul{margin:.2em 0 0 1.2em;}    .price-intro li{margin:.2em 0;}    .price-intro .ok{      display:inline-block;      background:#0ea5e9;      color:#fff;      font-weight:700;      border-radius:999px;      padding:.1em .6em;      font-size:12px;      margin-left:.4em;    }    /* ===== Anchor nav ===== */    .price-nav{      display:flex;      gap:8px;      flex-wrap:wrap;      margin:10px 0 18px;    }    .price-nav a{      display:inline-flex;      align-items:center;      gap:.4em;      padding:10px 12px;      border-radius:999px;      background:var(--paper);      border:1px solid var(--line);      color:var(--ink);      text-decoration:none;      font-size:14px;      box-shadow:0 6px 20px rgba(0,0,0,.04);    }    .price-nav a:hover{ border-color:#ddd; }    /* ===== Section card ===== */    .price-card{      background:var(--paper);      border:1px solid var(--line);      border-radius:12px;      box-shadow:0 10px 30px rgba(0,0,0,.06);      padding:18px 18px;      margin:0 0 16px;    }    .price-card h2{      margin:0 0 10px;      font-size:20px;      font-weight:800;      line-height:1.35;      padding-left:12px;      border-left:5px solid var(--brand);    }    .price-card p.lead{ margin:.2em 0 .8em; color:var(--muted); }    /* ===== Table ===== */    .table-scroll{ overflow:auto; }    table.price-table{      width:100%;      border-collapse:collapse;      min-width:640px; /* for scroll on small devices */    }    .price-table th,    .price-table td{      border:1px solid var(--line);      padding:12px 10px;      vertical-align:top;      line-height:1.65;      background:#fff;    }    .price-table th{      background:var(--accent);      text-align:left;      font-weight:700;      white-space:nowrap;    }    .price-table td.price{      text-align:right;      font-weight:800;      white-space:nowrap;    }    .price-table small{ color:var(--muted); font-weight:400; }    /* ===== Payment ===== */    .pay-box{      display:grid;      grid-template-columns: 1fr 1fr;      gap:12px;    }    .pay-card{      border:1px solid var(--line);      border-radius:10px;      padding:12px 14px;      background:#fff;    }    .pay-card h3{ margin:0 0 6px; font-size:16px; }    .pay-card ul{ margin:.2em 0 0 1.2em; }    .pay-note{ color:var(--muted); font-size:13px; margin:.6em 0 0; }    .note{ color:var(--muted); font-size:13px; }    @media (max-width:959.98px){      .price-hero{ padding:22px 12px; }      .price-card{ padding:14px 14px; }      .price-card h2{ font-size:18px; }      .pay-box{ grid-template-columns:1fr; }    }/* 共通のPC/SPユーティリティ */.pc-only { display: block; }.sp-only { display: none; }@media (max-width:959.98px) {  .pc-only { display: none; }  .sp-only { display: block; }}/* ===== Float CTA (PC/SP) —  ===== *//* 既定（SP基準）。数値はここだけ触ればOK */.float-cta{  --col-left:57%;                 /* 左(TEL)幅 */  --col-right:42%;                /* 右(LINE)幅 → 合計<=100% */  --cta-gap: clamp(6px, 2.2vw, 10px);  --cta-pad: clamp(6px, 2vw, 12px);  /* 高さ：コンテナ幅 × 係数（--k）を clamp で拘束 */  --h-min: 48px;  --h-max: 72px;  --k: .165;                      /* SPの目安：枠幅×0.165 ≒ 高さ */}/* ベース配置 */.float-cta{  position: fixed;  inset-inline: 0;  bottom: max(8px, env(safe-area-inset-bottom));  z-index: 12000;  pointer-events: none;                 /* 外枠はクリック不可 */  display: block;}.float-cta.is-hidden{ display: none; }  /* JSで表示切替 */.float-cta-frame{  width: min(100%, 720px);  margin-inline: auto;  background: rgba(0,0,0,.30);  border-radius: 6px;  padding: var(--cta-pad);  padding-inline-start: calc(var(--cta-pad) + env(safe-area-inset-left));  padding-inline-end:   calc(var(--cta-pad) + env(safe-area-inset-right));  backdrop-filter: saturate(140%) blur(2px);  box-shadow: 0 2px 12px rgba(0,0,0,.12);  pointer-events: auto;                 /* 内側のみクリック可 */}.float-cta-inner{  display: flex;  align-items: stretch;  gap: var(--cta-gap);}/* ボタン共通 */.float-cta-inner > a{  min-width: 0;                         /* はみ出し阻止 */  /* 高さは“コンテナ実幅（--frame-w）×係数”をclamp */  height: clamp(var(--h-min),                calc(var(--frame-w, 100vw) * var(--k)),                var(--h-max));  border-radius: 12px;  overflow: hidden;  display: block;  flex: 0 1 auto;  transform: translateZ(0);}/* 幅配分（gap/2を左右で差し引き → 枠内に必ず収まる） */.float-cta-inner > a:first-child{  flex-basis: calc(var(--col-left)  - (var(--cta-gap)/2));}.float-cta-inner > a:last-child{  flex-basis: calc(var(--col-right) - (var(--cta-gap)/2));}/* 画像：切らずに収める（見た目を詰めたい時は contain→cover に） */.float-cta-inner img{  width: 100%;  height: 100%;  object-fit: contain; /* or: cover */  object-position: center;  display: block;}/* PC最適化（数値は必要に応じて調整） */@media (min-width: 960px){  .float-cta{    --col-left:57%;    --col-right:42%;    --cta-gap: clamp(10px, 1.2vw, 10px);    --cta-pad: clamp(10px, 1vw, 10px);    --h-min: 96px;    --h-max: 150px;    --k: .12;                 /* 1000pxで高さ120px相当 */    bottom: 24px;  }  .float-cta-frame{    width: min(100%, 700px);    padding: var(--cta-pad);  }}