@charset "UTF-8";

body.ppcf-active {
  background: #031722 !important;
}

body.ppcf-active #content,
body.ppcf-active #content.l-content,
body.ppcf-active .l-content,
body.ppcf-active .l-container,
body.ppcf-active .l-mainContent,
body.ppcf-active .l-mainContent__inner,
body.ppcf-active .l-article,
body.ppcf-active .post_content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

body.ppcf-active .p-breadcrumb,
body.ppcf-active .c-pageTitle,
body.ppcf-active .p-articleHead,
body.ppcf-active .l-mainContent > h1,
body.ppcf-active .post_content > h1:first-child {
  display: none !important;
}

.ppcf-page {
  --ppcf-navy: #06212e;
  --ppcf-navy-dark: #031722;
  --ppcf-navy-soft: #0a2b39;
  --ppcf-gold: #c9963e;
  --ppcf-gold-bright: #d9aa55;
  --ppcf-gold-light: #f0d194;
  --ppcf-ivory: #f8f4ec;
  --ppcf-paper: #fffdf9;
  --ppcf-text: #14222b;
  --ppcf-muted: #758088;
  --ppcf-line: rgba(201, 150, 62, .32);
  --ppcf-serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  width: 100%;
  overflow: clip;
  color: var(--ppcf-text);
  background: var(--ppcf-navy-dark);
}

.ppcf-page *,
.ppcf-page *::before,
.ppcf-page *::after { box-sizing: border-box; }
.ppcf-page a { text-decoration: none; }
.ppcf-shell { width: min(1180px, calc(100% - 44px)); margin-inline: auto; }
.ppcf-kicker { margin: 0 0 16px; color: var(--ppcf-gold-bright); font-size: 10px; font-weight: 700; letter-spacing: .22em; }

.ppcf-hero {
  position: relative;
  min-height: 500px;
  padding: clamp(82px, 8vw, 126px) 0 clamp(92px, 9vw, 135px);
  color: #fff;
  background:
    linear-gradient(90deg, rgba(3,23,34,.98) 0%, rgba(3,23,34,.97) 39%, rgba(3,23,34,.68) 62%, rgba(3,23,34,.18) 100%),
    linear-gradient(180deg, rgba(3,23,34,.04), rgba(3,23,34,.45)),
    url("contact-hero.webp") center / cover no-repeat;
}

.ppcf-hero::after {
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, rgba(201,150,62,.58), transparent);
}

.ppcf-hero__inner { position: relative; z-index: 1; }
.ppcf-hero__copy { width: min(700px, 64%); }
.ppcf-hero h1,
.ppcf-thanks h1 {
  margin: 0;
  font-family: var(--ppcf-serif);
  font-size: clamp(50px, 5vw, 76px);
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: .045em;
}
.ppcf-hero__lead { display: grid; gap: 5px; max-width: 720px; margin: 28px 0 0; color: rgba(255,255,255,.76); font-size: 14px; line-height: 1.9; }
.ppcf-hero__lead span,
.ppcf-hero__lead strong { display: block; }
.ppcf-hero__lead strong { margin-top: 5px; color: #fff; font-weight: 500; }

.ppcf-form-section {
  position: relative;
  padding: clamp(54px, 6vw, 82px) 0 clamp(82px, 8vw, 118px);
  background:
    radial-gradient(circle at 82% 8%, rgba(201,150,62,.08), transparent 24%),
    linear-gradient(180deg, #041b27 0%, #031722 100%);
}
.ppcf-form-layout { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(310px, .72fr); gap: 22px; align-items: start; }

.ppcf-form-card {
  min-width: 0;
  padding: clamp(28px, 3.6vw, 48px);
  border: 1px solid rgba(201,150,62,.52);
  border-radius: 4px;
  background:
    linear-gradient(135deg, rgba(201,150,62,.045), transparent 32%),
    var(--ppcf-paper);
  box-shadow: 0 30px 80px rgba(0,0,0,.22);
}

.ppcf-context { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin-bottom: 28px; padding: 15px 17px; border: 1px solid var(--ppcf-line); background: #fff8ea; }
.ppcf-context p { width: 100%; margin: 0; color: #786947; font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.ppcf-context span { padding: 5px 9px; border: 1px solid var(--ppcf-gold); color: #85611f; font-size: 9px; }
.ppcf-context strong { font-size: 13px; }

.ppcf-native-form { display: grid; gap: 38px; }
.ppcf-form-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; margin: 0; padding: 0; border: 0; }
.ppcf-form-group__head { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding-bottom: 13px; border-bottom: 1px solid rgba(201,150,62,.43); }
.ppcf-form-group__head > span { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid var(--ppcf-gold); border-radius: 50%; color: #8b641c; font-family: var(--ppcf-serif); font-size: 15px; }
.ppcf-form-group__head h2 { margin: 0; font-family: var(--ppcf-serif); font-size: clamp(22px, 2.1vw, 30px); font-weight: 500; line-height: 1.45; letter-spacing: .04em; }
.ppcf-field { min-width: 0; }
.ppcf-field--full { grid-column: 1 / -1; }
.ppcf-field label { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-bottom: 8px; color: #17242c; font-size: 11px; font-weight: 700; }
.ppcf-field label em,
.ppcf-consent em { padding: 3px 6px; color: #fff; font-size: 8px; font-style: normal; line-height: 1; background: #b54f39; }
.ppcf-field label > span { color: #89949a; font-size: 9px; font-weight: 500; }

.ppcf-field input[type="text"],
.ppcf-field input[type="email"],
.ppcf-field input[type="tel"],
.ppcf-field input[type="file"],
.ppcf-field select,
.ppcf-field textarea {
  width: 100%;
  min-height: 50px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #d4dade;
  border-radius: 0;
  outline: 0;
  color: #17252d;
  font: inherit;
  font-size: 12px;
  background: rgba(255,255,255,.88);
  box-shadow: inset 0 1px 0 rgba(0,0,0,.018);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.ppcf-field textarea { min-height: 260px; resize: vertical; line-height: 1.9; }
.ppcf-field input[type="file"] { min-height: 0; padding: 12px; font-size: 10px; }
.ppcf-field input:focus,
.ppcf-field select:focus,
.ppcf-field textarea:focus { border-color: var(--ppcf-gold); background: #fff; box-shadow: 0 0 0 3px rgba(201,150,62,.12); }
.ppcf-field small { display: block; margin-top: 7px; color: #7b868c; font-size: 9px; line-height: 1.7; }
.ppcf-char-counter { text-align: right; }

.ppcf-consent { padding: 15px 17px; border: 1px solid rgba(201,150,62,.22); background: #f7f2e9; }
.ppcf-consent label { display: flex; gap: 10px; align-items: flex-start; color: #38474f; font-size: 10px; line-height: 1.8; }
.ppcf-consent input { flex: 0 0 auto; margin-top: 5px; }
.ppcf-consent a { color: #8a641e; text-decoration: underline; text-underline-offset: 3px; }

.ppcf-submit-area { text-align: center; }
.ppcf-submit-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 36px; width: 100%; min-height: 62px; padding: 15px 22px 15px 28px; border: 1px solid var(--ppcf-gold); border-radius: 0; color: #fff; font-family: var(--ppcf-serif); font-size: 17px; letter-spacing: .08em; background: linear-gradient(90deg, #bd852d, #d4a34b); cursor: pointer; transition: transform .2s ease, filter .2s ease; }
.ppcf-submit-button:hover { transform: translateY(-1px); filter: brightness(1.05); }
.ppcf-submit-button i { font-size: 20px; font-style: normal; }
.ppcf-submit-area p { margin: 10px 0 0; color: #7a858b; font-size: 9px; }

.ppcf-side { display: grid; gap: 20px; }
.ppcf-side-card { padding: 30px 27px; border: 1px solid rgba(201,150,62,.66); color: #fff; background: rgba(4,27,39,.87); box-shadow: 0 20px 45px rgba(0,0,0,.15); backdrop-filter: blur(8px); }
.ppcf-side-card h2 { margin: 0; color: var(--ppcf-gold-bright); font-family: var(--ppcf-serif); font-size: 25px; font-weight: 500; line-height: 1.55; }
.ppcf-side-card > p:not(.ppcf-kicker) { margin: 14px 0 0; color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.85; }
.ppcf-side-card ul { display: grid; gap: 0; margin: 22px 0 0; padding: 0; list-style: none; }
.ppcf-side-card li { position: relative; padding: 12px 0 12px 30px; border-bottom: 1px solid rgba(201,150,62,.14); color: rgba(255,255,255,.87); font-size: 11px; }
.ppcf-side-card li::before { position: absolute; top: 11px; left: 0; display: grid; place-items: center; width: 18px; height: 18px; border: 1px solid var(--ppcf-gold); border-radius: 50%; color: var(--ppcf-gold-light); content: "✓"; font-size: 9px; }
.ppcf-side-card--phone > a { display: flex; gap: 10px; align-items: center; margin-top: 20px; color: var(--ppcf-gold-light); font-family: var(--ppcf-serif); font-size: 30px; line-height: 1.2; }
.ppcf-side-card--phone small { display: block; margin-top: 10px; color: rgba(255,255,255,.55); font-size: 9px; }
.ppcf-side-card--download a { display: flex; justify-content: space-between; margin-top: 20px; padding: 12px 14px; border: 1px solid var(--ppcf-gold); color: var(--ppcf-gold-light); font-size: 11px; }

.ppcf-errors { margin-bottom: 27px; padding: 18px 20px; border: 1px solid rgba(171,71,51,.35); border-left: 4px solid #ab4733; background: #fff5f2; }
.ppcf-errors strong { color: #933e2c; font-size: 13px; }
.ppcf-errors ul { margin: 8px 0 0; padding-left: 20px; color: #7b4e44; font-size: 11px; line-height: 1.8; }
.ppcf-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.ppcf-confirm[hidden] { display: none !important; }
.ppcf-confirm { position: fixed; z-index: 999999; inset: 0; display: grid; place-items: center; padding: 18px; }
.ppcf-confirm__backdrop { position: absolute; inset: 0; background: rgba(1,12,18,.82); backdrop-filter: blur(6px); }
.ppcf-confirm__dialog { position: relative; z-index: 1; width: min(720px, 100%); max-height: min(86vh, 900px); overflow: auto; padding: clamp(26px, 4vw, 42px); border: 1px solid rgba(201,150,62,.65); background: #fffdf9; box-shadow: 0 30px 90px rgba(0,0,0,.38); }
.ppcf-confirm__dialog h2 { margin: 0 0 24px; font-family: var(--ppcf-serif); font-size: 30px; font-weight: 500; }
.ppcf-confirm__close { position: absolute; top: 13px; right: 14px; width: 38px; height: 38px; border: 0; color: #26333a; font-size: 26px; background: transparent; cursor: pointer; }
.ppcf-confirm__summary { border-top: 1px solid rgba(7,31,43,.13); }
.ppcf-confirm__row { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid rgba(7,31,43,.1); }
.ppcf-confirm__row dt { color: #707b81; font-size: 10px; }
.ppcf-confirm__row dd { margin: 0; white-space: pre-wrap; color: #15242c; font-size: 12px; line-height: 1.7; }
.ppcf-confirm__actions { display: grid; grid-template-columns: .9fr 1.1fr; gap: 10px; margin-top: 25px; }
.ppcf-confirm__back,
.ppcf-confirm__send { min-height: 52px; padding: 12px 16px; border: 1px solid var(--ppcf-gold); cursor: pointer; }
.ppcf-confirm__back { color: #735820; background: transparent; }
.ppcf-confirm__send { display: flex; justify-content: space-between; align-items: center; color: #fff; background: var(--ppcf-gold); }
body.ppcf-modal-open { overflow: hidden; }

.ppcf-thanks-hero { padding: clamp(86px,10vw,148px) 0; color: #fff; text-align: center; background: radial-gradient(circle at center 16%, rgba(201,150,62,.18), transparent 30%), linear-gradient(135deg,#041722,#072735 64%,#03151e); }
.ppcf-thanks-hero__inner { max-width: 820px; }
.ppcf-thanks-hero p:last-child { margin: 24px 0 0; color: rgba(255,255,255,.7); font-size: 13px; }
.ppcf-check { position: relative; width: 76px; height: 76px; margin: 0 auto 25px; border: 1px solid rgba(235,202,136,.72); border-radius: 50%; }
.ppcf-check span::before { position: absolute; top: 29px; left: 24px; width: 27px; height: 14px; border-bottom: 2px solid var(--ppcf-gold-light); border-left: 2px solid var(--ppcf-gold-light); content: ""; transform: rotate(-45deg); }
.ppcf-reference { width: max-content; max-width: 100%; margin: 26px auto 0; padding: 10px 17px; border: 1px solid rgba(235,202,136,.5); color: rgba(255,255,255,.78); font-size: 11px; }
.ppcf-reference strong { color: var(--ppcf-gold-light); letter-spacing: .08em; }
.ppcf-thanks-body { padding: clamp(64px,7vw,100px) 0 clamp(80px,8vw,120px); background: linear-gradient(180deg,#f7f4ee 0%,#fff 35%); }
.ppcf-thanks-grid { display: grid; grid-template-columns: minmax(0,1.48fr) minmax(300px,.72fr); gap: clamp(34px,5vw,70px); align-items: start; }
.ppcf-thanks-main > h2 { margin: 0; font-family: var(--ppcf-serif); font-size: 34px; font-weight: 500; }
.ppcf-next-steps { display: grid; grid-template-columns: repeat(2,1fr); margin-top: 31px; border-top: 1px solid rgba(7,31,43,.12); border-left: 1px solid rgba(7,31,43,.12); }
.ppcf-next-steps > div { min-height: 180px; padding: 27px 25px; border-right: 1px solid rgba(7,31,43,.12); border-bottom: 1px solid rgba(7,31,43,.12); background:#fff; }
.ppcf-next-steps span { color:var(--ppcf-gold); font-size:10px; }
.ppcf-next-steps strong { display:block; margin-top:11px; font-family:var(--ppcf-serif); font-size:20px; font-weight:500; }
.ppcf-next-steps p { margin:12px 0 0; color:#6b767c; font-size:11px; line-height:1.8; }
.ppcf-mail-note { margin-top:30px; padding:26px 28px; border-left:3px solid var(--ppcf-gold); background:#fffaf0; }
.ppcf-mail-note h3 { margin:0; font-size:16px; }
.ppcf-mail-note p { margin:10px 0 0; color:#68747b; font-size:11px; line-height:1.8; }
.ppcf-mail-note a { display:inline-block; margin-top:12px; color:#8a641e; font-size:12px; }
.ppcf-thanks-side { display:grid; gap:20px; }
.ppcf-thanks-links { display:grid; border-top:1px solid rgba(7,31,43,.12); }
.ppcf-thanks-links a { display:flex; justify-content:space-between; gap:14px; padding:17px 3px; border-bottom:1px solid rgba(7,31,43,.12); color:#213039; font-size:11px; }

@media (max-width: 980px) {
  .ppcf-hero { min-height: 440px; }
  .ppcf-hero__copy { width: min(700px, 82%); }
  .ppcf-form-layout,
  .ppcf-thanks-grid { grid-template-columns: 1fr; }
  .ppcf-side { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ppcf-side-card--download { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .ppcf-shell { width: min(100% - 30px, 1180px); }
  .ppcf-hero { min-height: 0; padding: 63px 0 70px; background-position: 65% center; }
  .ppcf-hero__copy { width: 100%; }
  .ppcf-hero h1,
  .ppcf-thanks h1 { font-size: 39px; line-height: 1.4; }
  .ppcf-hero__lead { font-size: 12px; line-height: 1.85; }
  .ppcf-form-section { padding-top: 34px; }
  .ppcf-form-card { padding: 27px 19px; }
  .ppcf-form-group { grid-template-columns: 1fr; gap: 19px; }
  .ppcf-field--full,
  .ppcf-form-group__head { grid-column: auto; }
  .ppcf-form-group__head h2 { font-size: 22px; }
  .ppcf-field textarea { min-height: 250px; }
  .ppcf-side { grid-template-columns: 1fr; }
  .ppcf-side-card--phone > a { font-size: 27px; }
  .ppcf-confirm__row { grid-template-columns: 1fr; gap: 5px; }
  .ppcf-confirm__actions { grid-template-columns: 1fr; }
  .ppcf-next-steps { grid-template-columns: 1fr; }
  .ppcf-next-steps > div { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ppcf-page *, .ppcf-page *::before, .ppcf-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}


/* ==========================================================
   v0.3.1
   SWELL full-bleed reset + form heading correction
   ========================================================== */

/*
 * SWELLの標準本文幅・ページ余白を、この問い合わせページだけ解除。
 * .ppcf-page自体も100vwで画面端まで広げるため、
 * テーマ側の未知のラッパーが残っても左右の白余白を作りません。
 */
html:has(body.ppcf-active) {
  overflow-x: clip !important;
}

body.ppcf-active {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip !important;
  background: #031722 !important;
}

body.ppcf-active #body_wrap,
body.ppcf-active #content,
body.ppcf-active #content.l-content,
body.ppcf-active #content.l-container,
body.ppcf-active .l-content,
body.ppcf-active .l-container,
body.ppcf-active .l-mainContent,
body.ppcf-active .l-mainContent__inner,
body.ppcf-active .l-article,
body.ppcf-active article,
body.ppcf-active .post_content,
body.ppcf-active .post_content > div {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

body.ppcf-active #content,
body.ppcf-active .l-content,
body.ppcf-active .l-mainContent,
body.ppcf-active .l-mainContent__inner,
body.ppcf-active .post_content {
  min-width: 0 !important;
  overflow: visible !important;
}

body.ppcf-active .l-mainContent {
  float: none !important;
}

body.ppcf-active .l-sidebar {
  display: none !important;
}

/* SWELLのページタイトル・記事ヘッダー・パンくずを完全に外す */
body.ppcf-active .c-pageTitle,
body.ppcf-active .p-articleHead,
body.ppcf-active .p-breadcrumb,
body.ppcf-active .c-postTitle,
body.ppcf-active .l-mainContent__inner > h1:first-child,
body.ppcf-active .l-mainContent__inner > header:first-child,
body.ppcf-active article > header:first-child,
body.ppcf-active .post_content > h1:first-child,
body.ppcf-active #main_content > h1:first-child {
  display: none !important;
}

/* 固定ページ本文がブロックとして持つ標準上下余白も解除 */
body.ppcf-active .post_content > .ppcf-page,
body.ppcf-active .entry-content > .ppcf-page,
body.ppcf-active .wp-block-group > .ppcf-page {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 最終保険：親ラッパーが狭くても画面幅いっぱいに展開 */
body.ppcf-active .ppcf-page {
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  width: 100vw !important;
  max-width: none !important;
  margin: 0 -50vw !important;
  padding: 0 !important;
}

@supports (width: 100dvw) {
  body.ppcf-active .ppcf-page {
    width: 100dvw !important;
    margin-right: -50dvw !important;
    margin-left: -50dvw !important;
  }
}

/* ヘッダー直下・フッター直前に残るSWELL標準余白を除去 */
body.ppcf-active .l-header + #content,
body.ppcf-active .l-header + .l-content,
body.ppcf-active #content + .l-footer,
body.ppcf-active .l-content + .l-footer {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.ppcf-active #content {
  padding-bottom: 0 !important;
}

/*
 * SWELLのh2装飾を完全リセット。
 * 承認デザインどおり「丸番号＋黒文字＋細いゴールド罫線」に固定。
 */
body.ppcf-active .post_content .ppcf-form-group__head,
body.ppcf-active .ppcf-page .ppcf-form-group__head {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr) !important;
  gap: 15px !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 0 0 14px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(201, 150, 62, .48) !important;
  border-radius: 0 !important;
  color: #14222b !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.ppcf-active .post_content .ppcf-form-group__head::before,
body.ppcf-active .post_content .ppcf-form-group__head::after,
body.ppcf-active .ppcf-page .ppcf-form-group__head::before,
body.ppcf-active .ppcf-page .ppcf-form-group__head::after {
  display: none !important;
  content: none !important;
}

body.ppcf-active .post_content .ppcf-form-group__head > span,
body.ppcf-active .ppcf-page .ppcf-form-group__head > span {
  position: static !important;
  display: grid !important;
  place-items: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #c9963e !important;
  border-radius: 50% !important;
  color: #8b641c !important;
  font-family: var(--ppcf-serif) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.ppcf-active .post_content .ppcf-form-group__head h2,
body.ppcf-active .ppcf-page .ppcf-form-group__head h2 {
  position: static !important;
  display: block !important;
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #14222b !important;
  font-family: var(--ppcf-serif) !important;
  font-size: clamp(23px, 2vw, 30px) !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: .045em !important;
  text-align: left !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

body.ppcf-active .post_content .ppcf-form-group__head h2::before,
body.ppcf-active .post_content .ppcf-form-group__head h2::after,
body.ppcf-active .ppcf-page .ppcf-form-group__head h2::before,
body.ppcf-active .ppcf-page .ppcf-form-group__head h2::after {
  display: none !important;
  content: none !important;
}

/* フォーム内部の見出し以外もSWELLの疑似装飾だけ除去 */
body.ppcf-active .ppcf-page h1::before,
body.ppcf-active .ppcf-page h1::after,
body.ppcf-active .ppcf-side-card h2::before,
body.ppcf-active .ppcf-side-card h2::after,
body.ppcf-active .ppcf-thanks-main h2::before,
body.ppcf-active .ppcf-thanks-main h2::after {
  display: none !important;
  content: none !important;
}

/* 承認画像に近い横幅バランス */
@media (min-width: 1181px) {
  .ppcf-shell {
    width: min(1240px, calc(100% - 72px)) !important;
  }

  .ppcf-form-layout {
    grid-template-columns: minmax(0, 1.82fr) minmax(320px, .68fr) !important;
    gap: 24px !important;
  }
}

@media (max-width: 640px) {
  body.ppcf-active .post_content .ppcf-form-group__head,
  body.ppcf-active .ppcf-page .ppcf-form-group__head {
    grid-template-columns: 40px minmax(0, 1fr) !important;
    gap: 12px !important;
    min-height: 44px !important;
  }

  body.ppcf-active .post_content .ppcf-form-group__head > span,
  body.ppcf-active .ppcf-page .ppcf-form-group__head > span {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    font-size: 13px !important;
  }

  body.ppcf-active .post_content .ppcf-form-group__head h2,
  body.ppcf-active .ppcf-page .ppcf-form-group__head h2 {
    font-size: 21px !important;
    line-height: 1.45 !important;
    letter-spacing: .025em !important;
  }
}


/* ==========================================================
   v0.3.2
   body class fallback / unconditional full bleed
   ========================================================== */

/*
 * v0.3.1ではSWELL側の描画順によってbodyクラスが付かない環境があり、
 * body.ppcf-activeを前提としたリセットが実行されない場合がありました。
 * v0.3.2では次の3段階で必ず適用します。
 * 1. PHPのbody_class
 * 2. JavaScriptでbodyへppcf-activeを追加
 * 3. .ppcf-page単体でも画面幅いっぱいに展開
 */

html.ppcf-html-active,
html:has(.ppcf-page) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip !important;
}

body:has(.ppcf-page),
body.ppcf-active {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip !important;
  background: #031722 !important;
}

/* bodyクラスがなくても問い合わせ本体だけは必ずフルブリード */
.ppcf-page {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: none !important;
  margin-top: 0 !important;
  margin-right: -50vw !important;
  margin-bottom: 0 !important;
  margin-left: -50vw !important;
  padding: 0 !important;
}

@supports (width: 100dvw) {
  .ppcf-page {
    width: 100dvw !important;
    margin-right: -50dvw !important;
    margin-left: -50dvw !important;
  }
}

/* SWELLの外枠・本文幅・余白を問い合わせページだけ解除 */
body:has(.ppcf-page) #body_wrap,
body:has(.ppcf-page) #content,
body:has(.ppcf-page) #content.l-content,
body:has(.ppcf-page) #content.l-container,
body:has(.ppcf-page) .l-content,
body:has(.ppcf-page) .l-container,
body:has(.ppcf-page) .l-mainContent,
body:has(.ppcf-page) .l-mainContent__inner,
body:has(.ppcf-page) .l-article,
body:has(.ppcf-page) article,
body:has(.ppcf-page) .post_content,
body:has(.ppcf-page) .entry-content,
body.ppcf-active #body_wrap,
body.ppcf-active #content,
body.ppcf-active #content.l-content,
body.ppcf-active #content.l-container,
body.ppcf-active .l-content,
body.ppcf-active .l-container,
body.ppcf-active .l-mainContent,
body.ppcf-active .l-mainContent__inner,
body.ppcf-active .l-article,
body.ppcf-active article,
body.ppcf-active .post_content,
body.ppcf-active .entry-content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body:has(.ppcf-page) .l-sidebar,
body.ppcf-active .l-sidebar {
  display: none !important;
}

/* ページタイトル・記事ヘッダー・パンくずを確実に非表示 */
body:has(.ppcf-page) .c-pageTitle,
body:has(.ppcf-page) .p-articleHead,
body:has(.ppcf-page) .p-breadcrumb,
body:has(.ppcf-page) .c-postTitle,
body:has(.ppcf-page) .l-mainContent__inner > h1:first-child,
body:has(.ppcf-page) .l-mainContent__inner > header:first-child,
body:has(.ppcf-page) article > header:first-child,
body:has(.ppcf-page) .post_content > h1:first-child,
body:has(.ppcf-page) #main_content > h1:first-child,
body.ppcf-active .c-pageTitle,
body.ppcf-active .p-articleHead,
body.ppcf-active .p-breadcrumb,
body.ppcf-active .c-postTitle,
body.ppcf-active .l-mainContent__inner > h1:first-child,
body.ppcf-active .l-mainContent__inner > header:first-child,
body.ppcf-active article > header:first-child,
body.ppcf-active .post_content > h1:first-child,
body.ppcf-active #main_content > h1:first-child {
  display: none !important;
}

/* ヘッダー下、本文前後に残るテーマ側の空白を削除 */
body:has(.ppcf-page) .l-header + #content,
body:has(.ppcf-page) .l-header + .l-content,
body:has(.ppcf-page) #content,
body:has(.ppcf-page) .l-content,
body:has(.ppcf-page) .post_content,
body.ppcf-active .l-header + #content,
body.ppcf-active .l-header + .l-content,
body.ppcf-active #content,
body.ppcf-active .l-content,
body.ppcf-active .post_content {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/*
 * 見出しはSWELLのh2装飾より強い指定にし、
 * bodyクラスが付く前から「丸番号＋黒文字＋ゴールド線」で表示。
 */
.ppcf-page .ppcf-form-group__head {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr) !important;
  gap: 15px !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 0 0 14px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(201, 150, 62, .48) !important;
  border-radius: 0 !important;
  color: #14222b !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ppcf-page .ppcf-form-group__head::before,
.ppcf-page .ppcf-form-group__head::after {
  display: none !important;
  content: none !important;
}

.ppcf-page .ppcf-form-group__head > span {
  position: static !important;
  display: grid !important;
  place-items: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #c9963e !important;
  border-radius: 50% !important;
  color: #8b641c !important;
  font-family: var(--ppcf-serif) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ppcf-page .ppcf-form-group__head h2 {
  position: static !important;
  display: block !important;
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #14222b !important;
  font-family: var(--ppcf-serif) !important;
  font-size: clamp(23px, 2vw, 30px) !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: .045em !important;
  text-align: left !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

.ppcf-page .ppcf-form-group__head h2::before,
.ppcf-page .ppcf-form-group__head h2::after {
  display: none !important;
  content: none !important;
}

@media (max-width: 640px) {
  .ppcf-page .ppcf-form-group__head {
    grid-template-columns: 40px minmax(0, 1fr) !important;
    gap: 12px !important;
    min-height: 44px !important;
  }

  .ppcf-page .ppcf-form-group__head > span {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    font-size: 13px !important;
  }

  .ppcf-page .ppcf-form-group__head h2 {
    font-size: 21px !important;
    line-height: 1.45 !important;
    letter-spacing: .025em !important;
  }
}


/* ==========================================================
   v0.3.3
   full-bleed alignment correction
   ========================================================== */

/*
 * v0.3.2で左右いっぱい表示はできたものの、
 * 一部環境で .ppcf-page のleft:50%方式により全体が右へ寄ることがありました。
 * v0.3.3では calc(50% - 50vw) 方式へ変更して中央基準で安定表示させます。
 */
.ppcf-page {
  left: auto !important;
  right: auto !important;
  width: 100vw !important;
  margin-top: 0 !important;
  margin-right: calc(50% - 50vw) !important;
  margin-bottom: 0 !important;
  margin-left: calc(50% - 50vw) !important;
  padding: 0 !important;
}

@supports (width: 100dvw) {
  .ppcf-page {
    width: 100dvw !important;
    margin-right: calc(50% - 50dvw) !important;
    margin-left: calc(50% - 50dvw) !important;
  }
}

/* ヒーローコピーは左寄せを安定化 */
.ppcf-hero__inner {
  display: flex !important;
  justify-content: flex-start !important;
}

.ppcf-hero__copy {
  width: min(760px, 62vw) !important;
  max-width: 760px !important;
}

@media (max-width: 1180px) {
  .ppcf-hero__copy {
    width: min(700px, 74%) !important;
  }
}

@media (max-width: 980px) {
  .ppcf-hero__copy {
    width: min(700px, 82%) !important;
  }
}

@media (max-width: 640px) {
  .ppcf-hero__copy {
    width: 100% !important;
    max-width: none !important;
  }
}


/* ==========================================================
   v0.3.4
   delayed right-shift fix
   ========================================================== */

/*
 * JavaScript実行後に body.ppcf-active が付いた際、過去版の
 * left:50% / margin:-50vw が高い詳細度で再度有効になり、
 * 一瞬正常→右寄りへ移動していました。
 * 同じ詳細度以上で最終位置を固定します。
 */
body.ppcf-active .ppcf-page,
body:has(.ppcf-page) .ppcf-page,
html.ppcf-html-active body .ppcf-page {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  inset-inline: auto !important;
  width: 100vw !important;
  max-width: none !important;
  margin-top: 0 !important;
  margin-right: calc(50% - 50vw) !important;
  margin-bottom: 0 !important;
  margin-left: calc(50% - 50vw) !important;
  padding: 0 !important;
  transform: none !important;
}

@supports (width: 100dvw) {
  body.ppcf-active .ppcf-page,
  body:has(.ppcf-page) .ppcf-page,
  html.ppcf-html-active body .ppcf-page {
    width: 100dvw !important;
    margin-right: calc(50% - 50dvw) !important;
    margin-left: calc(50% - 50dvw) !important;
  }
}

/* HERO内部は常に中央シェル基準で左揃え */
body.ppcf-active .ppcf-hero .ppcf-shell,
body:has(.ppcf-page) .ppcf-hero .ppcf-shell {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  margin-right: auto !important;
  margin-left: auto !important;
  transform: none !important;
}


/* ==========================================================
   v0.3.5
   HERO title line-break correction
   ========================================================== */

/* 「お問い合わせ・」／「お見積り」を必ず2行で表示 */
.ppcf-page .ppcf-hero__title {
  width: max-content !important;
  max-width: 100% !important;
  font-size: clamp(54px, 4.7vw, 74px) !important;
  line-height: 1.32 !important;
  letter-spacing: .035em !important;
}

.ppcf-page .ppcf-hero__title > span {
  display: block !important;
  width: max-content !important;
  max-width: 100% !important;
  white-space: nowrap !important;
}

@media (max-width: 980px) {
  .ppcf-page .ppcf-hero__title {
    font-size: clamp(48px, 7vw, 66px) !important;
  }
}

@media (max-width: 640px) {
  .ppcf-page .ppcf-hero__title {
    width: 100% !important;
    font-size: clamp(36px, 10.5vw, 46px) !important;
    line-height: 1.42 !important;
    letter-spacing: .02em !important;
  }

  .ppcf-page .ppcf-hero__title > span {
    width: auto !important;
    white-space: nowrap !important;
  }
}


/* ==========================================================
   v0.3.6
   Thank-you page title line-break correction
   ========================================================== */

.ppcf-thanks-hero__inner {
  width: min(960px, calc(100% - 44px)) !important;
  max-width: 960px !important;
}

.ppcf-thanks .ppcf-thanks__title {
  display: grid !important;
  gap: .08em !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  font-family: var(--ppcf-serif) !important;
  font-size: clamp(48px, 5vw, 68px) !important;
  font-weight: 500 !important;
  line-height: 1.42 !important;
  letter-spacing: .025em !important;
  text-align: center !important;
}

.ppcf-thanks .ppcf-thanks__title span {
  display: block !important;
  width: max-content !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  white-space: nowrap !important;
}

.ppcf-thanks .ppcf-thanks__title::before,
.ppcf-thanks .ppcf-thanks__title::after {
  display: none !important;
  content: none !important;
}

@media (max-width: 640px) {
  .ppcf-thanks-hero__inner {
    width: min(100% - 30px, 960px) !important;
  }

  .ppcf-thanks .ppcf-thanks__title {
    gap: .12em !important;
    font-size: clamp(30px, 8.1vw, 38px) !important;
    line-height: 1.5 !important;
    letter-spacing: .01em !important;
  }
}
