/*
Theme Name:     Lightning-child
Description:    Lightningの子テーマ
Author:         静岡県 建設業許可
Template:       lightning

(optional values you can add: Theme URI, Author URI, Version, License, License URI, Tags, Text Domain)
*/



/* -----------------------------
	改行
----------------------------- */

.hidden {
	display: none;
}

.hidden.pcBlock {
	display: inline;
}

@media screen and (max-width: 640px) {
	.hidden.pcBlock {
		display: none;
	}

	.hidden.spBlock {
		display: inline;
	}
}

/*スマホcenter⇒left*/
@media screen and (max-width: 800px) {
	.mobile-left {
		text-align:left;
	}
}

/* -----------------------------
	汎用
----------------------------- */

.clear {
    clear:both;
}

.floatL{
	float:left;
	margin: 0;
}

.floatR{
	float:right;
	margin: -15px 0 0 20px;
}

.center{
	text-align:center;
}

.right{
	text-align:right;
}

.left{
	text-align:left;
}

.underline {
    text-decoration:underline;
}

strong {
	font-weight:bold;
}

em {
	font-weight:bold;
}

.font-bold {
	font-weight:bold;
}

.font-normal {
	font-weight:normal;
}

.indent-1 {
	margin:0 0 0 1em;
	text-indent: -1em;
}

.indent1 {
	text-indent: 1em;
}


/* =====================================================
   建設業許可 HOME 完全デザイン調整版
   ・全体背景は白
   ・各セクションを薄い青の大きなボックス化
   ・くびれ防止
   ・Lightning固定ページ対応
===================================================== */

.kensetsu-home {
  --kh-main: #0b86c5;
  --kh-main-dark: #005b8f;
  --kh-accent: #f59e0b;
  --kh-bg: #eef9ff;
  --kh-bg-strong: #dff4ff;
  --kh-card: #ffffff;
  --kh-text: #1f2937;
  --kh-muted: #52616b;
  --kh-border: #9bd8f1;
  --kh-shadow: 0 14px 35px rgba(11, 134, 197, 0.12);
  --kh-radius: 22px;

  color: var(--kh-text);
  background: #ffffff;
  line-height: 1.85;
  font-size: 16px;
  overflow: hidden;

  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.kensetsu-home * {
  box-sizing: border-box;
}

.kensetsu-home .kh-inner {
  width: min(100% - 40px, 1120px);
  margin: 0 auto;
}

.kensetsu-home h1,
.kensetsu-home h2,
.kensetsu-home h3,
.kensetsu-home p {
  margin-top: 0;
}

.kensetsu-home h1,
.kensetsu-home h2,
.kensetsu-home h3 {
  border: none !important;
  background: none !important;
  color: var(--kh-main-dark);
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.kensetsu-home h1 {
  margin-bottom: 20px;
  font-size: clamp(2rem, 4vw, 3.3rem);
}

.kensetsu-home h2 {
  position: relative;
  margin-bottom: 30px;
  padding: 0 0 16px;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  text-align: center;
}

.kensetsu-home h2::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 90px;
  height: 4px;
  border-radius: 999px;
  background: var(--kh-main);
  transform: translateX(-50%);
}

.kensetsu-home h3 {
  margin-bottom: 10px;
  font-size: 1.18rem;
}

.kensetsu-home p {
  margin-bottom: 1.2em;
}

.kensetsu-home p:last-child {
  margin-bottom: 0;
}

.kensetsu-home a {
  color: var(--kh-main-dark);
  word-break: break-word;
}


/* =====================================================
   ヒーロー
===================================================== */

.kensetsu-home .kh-hero {
  padding: 72px 0 66px;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.95), transparent 34%),
    linear-gradient(135deg, #dff4ff 0%, #ffffff 48%, #c8edff 100%);
  text-align: center;
}

.kensetsu-home .kh-hero .kh-inner {
  max-width: 1040px;
}

.kensetsu-home .kh-label {
  display: inline-block;
  margin-bottom: 16px;
  padding: 7px 18px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--kh-main-dark);
  border: 1px solid var(--kh-border);
  font-weight: 800;
  font-size: 0.92rem;
}

.kensetsu-home .kh-catch {
  max-width: 880px;
  margin: 0 auto 22px;
  color: var(--kh-main-dark);
  font-size: clamp(1.2rem, 2.4vw, 1.65rem);
  font-weight: 800;
  line-height: 1.7;
}

.kensetsu-home .kh-lead {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding: 26px 30px;
  border: 1px solid var(--kh-border);
  border-radius: var(--kh-radius);
  background: rgba(255,255,255,0.9);
  box-shadow: 0 10px 26px rgba(11, 134, 197, 0.10);
  text-align: left;
}

.kensetsu-home .kh-cta {
  margin-top: 30px;
  text-align: center;
}

.kensetsu-home .kh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 14px 34px;
  border-radius: 999px;
  background: var(--kh-accent);
  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(245, 158, 11, 0.32);
  transition: 0.2s ease;
}

.kensetsu-home .kh-btn:hover {
  background: #e58c00;
  color: #ffffff !important;
  transform: translateY(-1px);
}

.kensetsu-home .kh-tel {
  margin-top: 14px;
  margin-bottom: 0;
  color: var(--kh-muted);
}

.kensetsu-home .kh-tel strong {
  color: #d97706;
  font-size: 1.25em;
}


/* =====================================================
   セクション共通
===================================================== */

.kensetsu-home .kh-section,
.kensetsu-home .kh-office {
  padding: 38px 0;
  background: #ffffff;
}

.kensetsu-home .kh-section > .kh-inner,
.kensetsu-home .kh-office > .kh-inner {
  padding: clamp(28px, 4vw, 46px);
  border: 1px solid var(--kh-border);
  border-radius: var(--kh-radius);
  background: var(--kh-bg);
  box-shadow: var(--kh-shadow);
}

.kensetsu-home .kh-section.kh-bg > .kh-inner {
  background: var(--kh-bg-strong);
}

.kensetsu-home .kh-section > .kh-inner > p {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}


/* =====================================================
   カード類
===================================================== */

.kensetsu-home .kh-box-list,
.kensetsu-home .kh-service-list,
.kensetsu-home .kh-reason-list,
.kensetsu-home .kh-price-list {
  display: grid;
  gap: 18px;
}

.kensetsu-home .kh-box-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kensetsu-home .kh-service-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kensetsu-home .kh-reason-list,
.kensetsu-home .kh-price-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kensetsu-home .kh-box,
.kensetsu-home .kh-service,
.kensetsu-home .kh-reason,
.kensetsu-home .kh-price {
  padding: 24px;
  border: 1px solid var(--kh-border);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(11, 134, 197, 0.08);
}

.kensetsu-home .kh-box h3,
.kensetsu-home .kh-service h3,
.kensetsu-home .kh-reason h3,
.kensetsu-home .kh-price h3 {
  padding-bottom: 10px;
  border-bottom: 1px solid #d8eff9 !important;
}


/* =====================================================
   チェックリスト
===================================================== */

.kensetsu-home .kh-check {
  max-width: 900px;
  margin: 26px auto 0;
  padding: 0;
  list-style: none;
}

.kensetsu-home .kh-check li {
  position: relative;
  margin-bottom: 12px;
  padding: 15px 18px 15px 50px;
  border: 1px solid var(--kh-border);
  border-radius: 14px;
  background: #ffffff;
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(11, 134, 197, 0.07);
}

.kensetsu-home .kh-check li::before {
  content: "\2713";
  position: absolute;
  left: 17px;
  top: 15px;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: var(--kh-main);
  color: #ffffff;
  display: grid;
  place-items: center;
  font-size: 0.86rem;
  line-height: 1;
}


/* =====================================================
   料金
===================================================== */

.kensetsu-home .kh-price-note {
  display: inline-block;
  margin-bottom: 16px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #fff4dc;
  color: #9a5a00;
  font-weight: 700;
  font-size: 0.92rem;
}

.kensetsu-home .kh-price dl {
  margin: 0;
}

.kensetsu-home .kh-price dt {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #d8eff9;
  color: var(--kh-muted);
  font-weight: 700;
}

.kensetsu-home .kh-price dd {
  margin: 4px 0 0;
}

.kensetsu-home .kh-price dd strong {
  color: #d97706;
  font-size: 1.35rem;
}

.kensetsu-home .kh-small {
  margin-top: 20px;
  color: var(--kh-muted);
  font-size: 0.94rem;
}


/* =====================================================
   流れ
===================================================== */

.kensetsu-home .kh-flow {
  max-width: 940px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  counter-reset: flow;
}

.kensetsu-home .kh-flow li {
  position: relative;
  margin-bottom: 16px;
  padding: 24px 24px 24px 88px;
  border: 1px solid var(--kh-border);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(11, 134, 197, 0.08);
  counter-increment: flow;
}

.kensetsu-home .kh-flow li::before {
  content: counter(flow, decimal-leading-zero);
  position: absolute;
  left: 24px;
  top: 24px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--kh-main);
  color: #ffffff;
  font-weight: 800;
}


/* =====================================================
   FAQ
===================================================== */

.kensetsu-home .kh-faq {
  max-width: 940px;
  margin: 0 auto;
  display: grid;
  gap: 12px;
}

.kensetsu-home .kh-faq details {
  border: 1px solid var(--kh-border);
  border-radius: 16px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(11, 134, 197, 0.07);
}

.kensetsu-home .kh-faq summary {
  cursor: pointer;
  position: relative;
  padding: 18px 56px 18px 22px;
  color: var(--kh-main-dark);
  font-weight: 800;
  list-style: none;
}

.kensetsu-home .kh-faq summary::-webkit-details-marker {
  display: none;
}

.kensetsu-home .kh-faq summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #dff4ff;
  color: var(--kh-main-dark);
  font-weight: 800;
}

.kensetsu-home .kh-faq details[open] summary::after {
  content: "－";
}

.kensetsu-home .kh-faq details p {
  margin: 0;
  padding: 0 22px 20px;
}


/* =====================================================
   最終CTA
===================================================== */

.kensetsu-home .kh-final {
  margin-top: 38px;
  padding: 64px 0;
  background: linear-gradient(135deg, #005b8f, #0b86c5);
  color: #ffffff;
  text-align: center;
}

.kensetsu-home .kh-final .kh-inner {
  width: min(100% - 40px, 1040px);
  margin: 0 auto;
}

.kensetsu-home .kh-final h2 {
  color: #ffffff;
  padding-bottom: 0;
}

.kensetsu-home .kh-final h2::after {
  display: none;
}

.kensetsu-home .kh-final p {
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
  color: #ffffff;
}


/* =====================================================
   事務所情報
===================================================== */

.kensetsu-home .kh-office {
  padding-top: 38px;
  padding-bottom: 70px;
}

.kensetsu-home .kh-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--kh-border);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(11, 134, 197, 0.08);
}

.kensetsu-home .kh-table th,
.kensetsu-home .kh-table td {
  padding: 16px 18px;
  border-bottom: 1px solid #d8eff9;
  vertical-align: top;
  text-align: left;
}

.kensetsu-home .kh-table tr:last-child th,
.kensetsu-home .kh-table tr:last-child td {
  border-bottom: none;
}

.kensetsu-home .kh-table th {
  width: 28%;
  background: #dff4ff;
  color: var(--kh-main-dark);
  font-weight: 800;
}


/* =====================================================
   スマホ対応
===================================================== */

@media (max-width: 900px) {
  .kensetsu-home .kh-box-list,
  .kensetsu-home .kh-service-list,
  .kensetsu-home .kh-reason-list,
  .kensetsu-home .kh-price-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {

  .kensetsu-home .kh-inner,
  .kensetsu-home .kh-final .kh-inner {
    width: calc(100% - 24px);
  }

  .kensetsu-home .kh-hero {
    padding: 48px 0;
    text-align: left;
  }

  .kensetsu-home h1 {
    font-size: 1.85rem;
  }

  .kensetsu-home h2 {
    font-size: 1.45rem;
    text-align: left;
  }

  .kensetsu-home h2::after {
    left: 0;
    transform: none;
  }

  .kensetsu-home .kh-catch {
    font-size: 1.16rem;
  }

  .kensetsu-home .kh-lead {
    padding: 20px;
  }

  .kensetsu-home .kh-cta {
    text-align: left;
  }

  .kensetsu-home .kh-btn {
    width: 100%;
    padding-left: 18px;
    padding-right: 18px;
  }

  .kensetsu-home .kh-section,
  .kensetsu-home .kh-office {
    padding: 24px 0;
  }

  .kensetsu-home .kh-section > .kh-inner,
  .kensetsu-home .kh-office > .kh-inner {
    padding: 24px 18px;
    border-radius: 18px;
  }

  .kensetsu-home .kh-box,
  .kensetsu-home .kh-service,
  .kensetsu-home .kh-reason,
  .kensetsu-home .kh-price {
    padding: 20px;
  }

  .kensetsu-home .kh-flow li {
    padding: 76px 18px 20px;
  }

  .kensetsu-home .kh-flow li::before {
    left: 18px;
    top: 18px;
  }

  .kensetsu-home .kh-table,
  .kensetsu-home .kh-table tbody,
  .kensetsu-home .kh-table tr,
  .kensetsu-home .kh-table th,
  .kensetsu-home .kh-table td {
    display: block;
    width: 100%;
  }

  .kensetsu-home .kh-table th {
    border-bottom: none;
  }

  .kensetsu-home .kh-table td {
    padding-top: 10px;
  }
}

/* =====================================================
   建設業許可 お客様の声ページ
   既存HTML対応版
===================================================== */

.kensetsu-voice-page {
  --kv-main: #0b86c5;
  --kv-main-dark: #005b8f;
  --kv-accent: #f59e0b;
  --kv-bg: #eef9ff;
  --kv-bg-strong: #dff4ff;
  --kv-card: #ffffff;
  --kv-text: #1f2937;
  --kv-muted: #52616b;
  --kv-border: #9bd8f1;
  --kv-shadow: 0 14px 35px rgba(11, 134, 197, 0.13);
  --kv-radius: 22px;

  width: min(100% - 40px, 1120px);
  margin: 0 auto;
  color: var(--kv-text);
  line-height: 1.85;
  font-size: 16px;
}

.kensetsu-voice-page * {
  box-sizing: border-box;
}

.kensetsu-voice-page p {
  margin-top: 0;
  margin-bottom: 1.1em;
}

.kensetsu-voice-page a {
  color: var(--kv-main-dark);
  font-weight: 800;
  text-decoration: none;
}

.kensetsu-voice-page a:hover {
  text-decoration: underline;
}


/* 見出し */
.kensetsu-voice-page .standard01 {
  position: relative;
  margin: 50px 0 34px;
  padding: 34px 20px;
  border: none !important;
  border-radius: var(--kv-radius);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.95), transparent 38%),
    linear-gradient(135deg, #dff4ff 0%, #ffffff 55%, #c8edff 100%);
  color: var(--kv-main-dark);
  text-align: center;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 900;
  letter-spacing: 0.06em;
  box-shadow: var(--kv-shadow);
}

.kensetsu-voice-page .standard01::before {
  content: "Customer Voice";
  display: block;
  margin-bottom: 8px;
  color: var(--kv-main);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.kensetsu-voice-page .standard01::after {
  content: "";
  display: block;
  width: 86px;
  height: 4px;
  margin: 16px auto 0;
  border-radius: 999px;
  background: var(--kv-main);
}


/* お客様の声カード */
.kensetsu-voice-page .waku2 {
  position: relative;
  margin: 0 0 34px;
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid var(--kv-border);
  border-radius: var(--kv-radius);
  background: linear-gradient(180deg, #ffffff 0%, #f7fcff 100%);
  box-shadow: var(--kv-shadow);
  overflow: hidden;
}

.kensetsu-voice-page .waku2::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 8px;
  background: linear-gradient(180deg, var(--kv-main), #77cef4);
}

.kensetsu-voice-page .waku2::after {
  content: "VOICE";
  position: absolute;
  right: 24px;
  top: 18px;
  color: rgba(11, 134, 197, 0.08);
  font-size: clamp(2.6rem, 7vw, 5rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.08em;
  pointer-events: none;
}


/* お客様名 */
.kensetsu-voice-page .box-title {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 0 0 16px;
  padding: 8px 18px;
  border-radius: 999px;
  background: var(--kv-main);
  color: #ffffff;
  font-weight: 800;
  font-size: 1rem;
  box-shadow: 0 8px 18px rgba(11, 134, 197, 0.22);
}


/* キャッチコピー */
.kensetsu-voice-page .color-f90 {
  display: block;
  position: relative;
  z-index: 1;
  margin: 0 0 22px;
  padding: 18px 22px;
  border-left: 6px solid var(--kv-accent);
  border-radius: 14px;
  background: #fff8e8;
  color: #c26700 !important;
  font-size: clamp(1.15rem, 2.3vw, 1.45rem);
  font-weight: 900;
  line-height: 1.6;
}

.kensetsu-voice-page .font-bold {
  font-weight: 800;
}


/* 写真 */
.kensetsu-voice-page .floatR {
  float: right;
  width: min(32%, 260px);
  margin: 0 0 22px 28px;
}

.kensetsu-voice-page .floatR img,
.kensetsu-voice-page .center img {
  display: block;
  width: 100%;
  height: auto;
  border: 6px solid #ffffff;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
}

.kensetsu-voice-page .center {
  text-align: center;
}

.kensetsu-voice-page .m_off2 {
  display: none;
}


/* 本文 */
.kensetsu-voice-page .waku2 p:not(.box-title) {
  position: relative;
  z-index: 1;
}

.kensetsu-voice-page .waku2 p:not(.box-title):not(.floatR):not(.center) {
  color: var(--kv-text);
}

.kensetsu-voice-page .waku2 p:last-child {
  margin-bottom: 0;
}


/* 最後の案内文 */
.kensetsu-voice-page > p {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.kensetsu-voice-page > p[style*="margin-bottom:40px"] {
  margin-top: 46px !important;
  margin-bottom: 24px !important;
  padding: 26px 30px;
  border: 1px solid var(--kv-border);
  border-radius: var(--kv-radius);
  background: var(--kv-bg);
  box-shadow: 0 10px 24px rgba(11, 134, 197, 0.10);
  font-weight: 700;
}


/* 電話案内 */
.kensetsu-voice-page > p.center {
  text-align: center;
}

.kensetsu-voice-page > p.center:nth-last-child(2) {
  margin-top: 30px !important;
  margin-bottom: 8px !important;
  color: var(--kv-main-dark);
  font-weight: 800;
}

.kensetsu-voice-page .font-150 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 54px;
  padding: 16px 30px;
  border-radius: 999px;
  background: var(--kv-accent);
  color: #ffffff;
  font-size: clamp(1.45rem, 4vw, 2rem);
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(245, 158, 11, 0.32);
}

.kensetsu-voice-page .font-150 a {
  color: #ffffff !important;
  text-decoration: none !important;
}


/* clearfix */
.kensetsu-voice-page .waku2::after {
  clear: both;
}


/* スマホ */
@media (max-width: 700px) {

  .kensetsu-voice-page {
    width: calc(100% - 24px);
    font-size: 15px;
  }

  .kensetsu-voice-page .standard01 {
    margin-top: 32px;
    padding: 28px 18px;
    text-align: left;
  }

  .kensetsu-voice-page .standard01::after {
    margin-left: 0;
  }

  .kensetsu-voice-page .waku2 {
    padding: 24px 18px 24px 22px;
    border-radius: 18px;
  }

  .kensetsu-voice-page .waku2::after {
    font-size: 2.5rem;
    right: 14px;
    top: 12px;
  }

  .kensetsu-voice-page .box-title {
    display: block;
    width: fit-content;
    max-width: 100%;
    line-height: 1.5;
  }

  .kensetsu-voice-page .color-f90 {
    padding: 16px 18px;
    font-size: 1.12rem;
  }

  .kensetsu-voice-page .m_off {
    display: none !important;
  }

  .kensetsu-voice-page .m_off2 {
    display: block;
    margin: 0 auto 20px;
  }

  .kensetsu-voice-page .m_off2 img {
    max-width: 280px;
    margin: 0 auto;
  }

  .kensetsu-voice-page .floatR {
    float: none;
    width: 100%;
    margin: 0 0 20px;
  }

  .kensetsu-voice-page > p[style*="margin-bottom:40px"] {
    padding: 22px 18px;
  }

  .kensetsu-voice-page .font-150 {
    width: 100%;
    padding: 15px 18px;
    font-size: 1.45rem;
  }
}

/* =====================================================
   建設業許可 事務所概要ページ
   既存HTML対応版
===================================================== */

.kensetsu-office-page {
  --ko-main: #0b86c5;
  --ko-main-dark: #005b8f;
  --ko-accent: #f59e0b;
  --ko-bg: #eef9ff;
  --ko-bg-strong: #dff4ff;
  --ko-card: #ffffff;
  --ko-text: #1f2937;
  --ko-muted: #52616b;
  --ko-border: #9bd8f1;
  --ko-shadow: 0 14px 35px rgba(11, 134, 197, 0.13);
  --ko-radius: 22px;

  width: min(100% - 40px, 1120px);
  margin: 0 auto;
  color: var(--ko-text);
  line-height: 1.85;
  font-size: 16px;
}

.kensetsu-office-page * {
  box-sizing: border-box;
}

.kensetsu-office-page p {
  margin-top: 0;
  margin-bottom: 1.15em;
}

.kensetsu-office-page a {
  color: var(--ko-main-dark);
  font-weight: 800;
  text-decoration: none;
}

.kensetsu-office-page a:hover {
  text-decoration: underline;
}


/* =====================================================
   メイン見出し
===================================================== */

.kensetsu-office-page .standard01 {
  position: relative;
  margin: 50px 0 34px;
  padding: 36px 24px;
  border: none !important;
  border-radius: var(--ko-radius);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.95), transparent 38%),
    linear-gradient(135deg, #dff4ff 0%, #ffffff 55%, #c8edff 100%);
  color: var(--ko-main-dark);
  text-align: center;
  font-size: clamp(1.75rem, 4vw, 2.55rem);
  font-weight: 900;
  letter-spacing: 0.04em;
  box-shadow: var(--ko-shadow);
}

.kensetsu-office-page .standard01::before {
  content: "Office Profile";
  display: block;
  margin-bottom: 8px;
  color: var(--ko-main);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.kensetsu-office-page .standard01::after {
  content: "";
  display: block;
  width: 90px;
  height: 4px;
  margin: 16px auto 0;
  border-radius: 999px;
  background: var(--ko-main);
}


/* =====================================================
   代表紹介エリア
===================================================== */

.kensetsu-office-page > .floatR,
.kensetsu-office-page > p {
  position: relative;
  z-index: 1;
}

.kensetsu-office-page > .floatR {
  float: right;
  width: min(34%, 340px);
  margin: 0 0 24px 34px;
}

.kensetsu-office-page > .floatR img {
  display: block;
  width: 100%;
  max-width: 320px;
  height: auto;
  margin-left: auto;
  border: 7px solid #ffffff;
  border-radius: 22px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
}

.kensetsu-office-page > p:not(.center) {
  padding-left: 2px;
}

.kensetsu-office-page > p:nth-of-type(1) {
  color: var(--ko-main-dark);
  font-size: 1.22rem;
  font-weight: 900;
}


/* 代表紹介をカード風に見せるための背景 */
.kensetsu-office-page .standard01 + .floatR + p,
.kensetsu-office-page .standard01 + .floatR + p + p,
.kensetsu-office-page .standard01 + .floatR + p + p + p,
.kensetsu-office-page .standard01 + .floatR + p + p + p + p {
  max-width: 100%;
}

.kensetsu-office-page .standard01 ~ p:not(.center):not(:last-child) {
  font-size: 1rem;
}


/* =====================================================
   事務所概要見出し
===================================================== */

.kensetsu-office-page .standard02 {
  clear: both;
  position: relative;
  margin: 48px 0 28px;
  padding: 28px 24px;
  border: 1px solid var(--ko-border) !important;
  border-radius: var(--ko-radius);
  background: var(--ko-bg);
  color: var(--ko-main-dark);
  text-align: center;
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  font-weight: 900;
  box-shadow: var(--ko-shadow);
}

.kensetsu-office-page .standard02::before {
  content: "事務所情報";
  display: inline-block;
  margin-bottom: 10px;
  padding: 5px 16px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--ko-main);
  border: 1px solid var(--ko-border);
  font-size: 0.9rem;
  font-weight: 800;
}

.kensetsu-office-page .standard02::after {
  content: "";
  display: block;
  width: 86px;
  height: 4px;
  margin: 16px auto 0;
  border-radius: 999px;
  background: var(--ko-main);
}


/* =====================================================
   事務所概要表
===================================================== */

.kensetsu-office-page .hyou1 {
  margin: 0 0 34px;
  padding: clamp(22px, 4vw, 34px);
  border: 1px solid var(--ko-border);
  border-radius: var(--ko-radius);
  background: linear-gradient(180deg, #ffffff 0%, #f7fcff 100%);
  box-shadow: var(--ko-shadow);
}

.kensetsu-office-page .hyou1 dl {
  display: grid;
  grid-template-columns: 220px 1fr;
  margin: 0;
  border: 1px solid var(--ko-border);
  border-radius: 16px;
  overflow: hidden;
  background: #ffffff;
}

.kensetsu-office-page .hyou1 dt,
.kensetsu-office-page .hyou1 dd {
  margin: 0;
  padding: 18px 20px;
  border-bottom: 1px solid #d8eff9;
}

.kensetsu-office-page .hyou1 dt {
  display: flex;
  align-items: center;
  background: #dff4ff;
  color: var(--ko-main-dark);
  font-weight: 900;
}

.kensetsu-office-page .hyou1 dd {
  background: #ffffff;
  color: var(--ko-text);
}

.kensetsu-office-page .hyou1 dt:last-of-type,
.kensetsu-office-page .hyou1 dd:last-of-type {
  border-bottom: none;
}


/* =====================================================
   Googleマップ
===================================================== */

.kensetsu-office-page .waku1 {
  margin: 34px 0;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--ko-border);
  border-radius: var(--ko-radius);
  background: var(--ko-bg);
  box-shadow: var(--ko-shadow);
}

.kensetsu-office-page .google-maps {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 48%;
  border-radius: 18px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(11, 134, 197, 0.10);
}

.kensetsu-office-page .google-maps iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}


/* =====================================================
   下部CTA
===================================================== */

.kensetsu-office-page > p.center.mobile-left {
  clear: both;
  margin: 36px auto 20px !important;
  padding: 24px 28px;
  border: 1px solid var(--ko-border);
  border-radius: var(--ko-radius);
  background: linear-gradient(135deg, #dff4ff 0%, #ffffff 100%);
  color: var(--ko-main-dark);
  font-weight: 800;
  text-align: center;
  box-shadow: 0 10px 24px rgba(11, 134, 197, 0.10);
}

.kensetsu-office-page > p.center:not(.mobile-left) {
  text-align: center;
}

.kensetsu-office-page > p.center[style*="margin-bottom:-30px"] {
  margin-top: 28px !important;
  margin-bottom: 10px !important;
  color: var(--ko-main-dark);
  font-weight: 900;
}

.kensetsu-office-page .font-150 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 56px;
  padding: 16px 32px;
  border-radius: 999px;
  background: var(--ko-accent);
  color: #ffffff;
  font-size: clamp(1.45rem, 4vw, 2rem);
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(245, 158, 11, 0.32);
}

.kensetsu-office-page .font-150 a {
  color: #ffffff !important;
  text-decoration: none !important;
}


/* =====================================================
   clearfix
===================================================== */

.kensetsu-office-page::after {
  content: "";
  display: block;
  clear: both;
}


/* =====================================================
   スマホ対応
===================================================== */

@media (max-width: 700px) {

  .kensetsu-office-page {
    width: calc(100% - 24px);
    font-size: 15px;
  }

  .kensetsu-office-page .standard01 {
    margin-top: 32px;
    padding: 28px 18px;
    text-align: left;
    font-size: 1.65rem;
  }

  .kensetsu-office-page .standard01::after {
    margin-left: 0;
  }

  .kensetsu-office-page > .floatR {
    float: none;
    width: 100%;
    margin: 0 0 22px;
    text-align: center;
  }

  .kensetsu-office-page > .floatR img {
    max-width: 280px;
    margin: 0 auto;
  }

  .kensetsu-office-page .standard02 {
    margin-top: 34px;
    padding: 24px 18px;
    text-align: left;
  }

  .kensetsu-office-page .standard02::after {
    margin-left: 0;
  }

  .kensetsu-office-page .hyou1 {
    padding: 18px;
    border-radius: 18px;
  }

  .kensetsu-office-page .hyou1 dl {
    display: block;
  }

  .kensetsu-office-page .hyou1 dt,
  .kensetsu-office-page .hyou1 dd {
    display: block;
    width: 100%;
  }

  .kensetsu-office-page .hyou1 dt {
    padding: 14px 16px 8px;
    border-bottom: none;
  }

  .kensetsu-office-page .hyou1 dd {
    padding: 0 16px 16px;
    border-bottom: 1px solid #d8eff9;
  }

  .kensetsu-office-page .google-maps {
    padding-bottom: 72%;
  }

  .kensetsu-office-page > p.center.mobile-left {
    padding: 22px 18px;
    text-align: left;
  }

  .kensetsu-office-page .font-150 {
    width: 100%;
    padding: 15px 18px;
    font-size: 1.45rem;
  }
}

/* =====================================================
   事務所概要 見出し崩れ修正
===================================================== */

.kensetsu-office-page .standard02 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  gap: 10px;
  min-height: 150px;
  margin: 48px 0 28px;
  padding: 30px 24px;
  text-align: center;
}

.kensetsu-office-page .standard02::before {
  content: "事務所情報";
  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin: 0;
  padding: 7px 18px;
  border-radius: 999px;
  background: #ffffff;
  color: #0b86c5;
  border: 1px solid #9bd8f1;

  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
}

.kensetsu-office-page .standard02::after {
  content: "";
  display: block;
  width: 86px;
  height: 4px;
  margin: 10px auto 0;
  border-radius: 999px;
  background: #0b86c5;
}

/* =====================================================
   建設業許可 プライバシーポリシーページ
   https://kensetsu.office-aozora.net/policy
===================================================== */

.kensetsu-policy-page {
  --kp-main: #0b86c5;
  --kp-main-dark: #005b8f;
  --kp-accent: #f59e0b;
  --kp-bg: #eef9ff;
  --kp-bg-strong: #dff4ff;
  --kp-card: #ffffff;
  --kp-text: #1f2937;
  --kp-muted: #52616b;
  --kp-border: #9bd8f1;
  --kp-shadow: 0 14px 35px rgba(11, 134, 197, 0.13);
  --kp-radius: 22px;

  width: min(100% - 40px, 1120px);
  margin: 0 auto 70px;
  color: var(--kp-text);
  line-height: 1.9;
  font-size: 16px;
}

.kensetsu-policy-page * {
  box-sizing: border-box;
}

.kensetsu-policy-page p {
  margin-top: 0;
  margin-bottom: 1.2em;
}

.kensetsu-policy-page a {
  color: var(--kp-main-dark);
  font-weight: 800;
  text-decoration: none;
}

.kensetsu-policy-page a:hover {
  text-decoration: underline;
}


/* =====================================================
   見出し
===================================================== */

.kensetsu-policy-page .standard02 {
  position: relative;
  margin: 50px 0 28px;
  padding: 34px 24px;
  border: 1px solid var(--kp-border) !important;
  border-radius: var(--kp-radius);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.95), transparent 38%),
    linear-gradient(135deg, #dff4ff 0%, #ffffff 55%, #c8edff 100%);
  color: var(--kp-main-dark);
  text-align: center;
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-weight: 900;
  letter-spacing: 0.04em;
  box-shadow: var(--kp-shadow);
}

.kensetsu-policy-page .standard02::before {
  content: "Privacy Policy";
  display: block;
  margin-bottom: 8px;
  color: var(--kp-main);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.kensetsu-policy-page .standard02::after {
  content: "";
  display: block;
  width: 86px;
  height: 4px;
  margin: 16px auto 0;
  border-radius: 999px;
  background: var(--kp-main);
}


/* =====================================================
   本文カード
===================================================== */

.kensetsu-policy-page .waku1_ccc {
  position: relative;
  margin: 0 0 34px;
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid var(--kp-border);
  border-radius: var(--kp-radius);
  background: linear-gradient(180deg, #ffffff 0%, #f7fcff 100%);
  box-shadow: var(--kp-shadow);
  overflow: hidden;
}

.kensetsu-policy-page .waku1_ccc::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 8px;
  background: linear-gradient(180deg, var(--kp-main), #77cef4);
}

.kensetsu-policy-page .waku1_ccc::after {
  content: "POLICY";
  position: absolute;
  right: 24px;
  top: 18px;
  color: rgba(11, 134, 197, 0.07);
  font-size: clamp(2.5rem, 7vw, 5rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.08em;
  pointer-events: none;
}

.kensetsu-policy-page .waku1_ccc p {
  position: relative;
  z-index: 1;
}


/* 番号付き文章を読みやすく */
.kensetsu-policy-page .waku1_ccc p br {
  line-height: 2.1;
}


/* 制定日・日付 */
.kensetsu-policy-page .waku1_ccc p:last-child {
  margin-top: 22px;
  margin-bottom: 0;
  padding-top: 16px;
  border-top: 1px solid #d8eff9;
  color: var(--kp-muted);
  text-align: right;
  font-size: 0.94rem;
}


/* 下線リンク */
.kensetsu-policy-page .underline {
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* =====================================================
   スマホ対応
===================================================== */

@media (max-width: 700px) {

  .kensetsu-policy-page {
    width: calc(100% - 24px);
    margin-bottom: 50px;
    font-size: 15px;
  }

  .kensetsu-policy-page .standard02 {
    margin-top: 32px;
    padding: 28px 18px;
    text-align: left;
    font-size: 1.55rem;
  }

  .kensetsu-policy-page .standard02::after {
    margin-left: 0;
  }

  .kensetsu-policy-page .waku1_ccc {
    padding: 24px 18px 24px 22px;
    border-radius: 18px;
  }

  .kensetsu-policy-page .waku1_ccc::after {
    right: 14px;
    top: 12px;
    font-size: 2.5rem;
  }

  .kensetsu-policy-page .waku1_ccc p:last-child {
    text-align: left;
  }
}

/* =====================================================
   建設業許可 ブログ記事ページ デザイン調整
   Lightning 投稿ページ用
===================================================== */

/* 投稿ページ全体 */
body.single-post {
  background: #ffffff;
}

/* 本文エリア */
body.single-post .mainSection,
body.single-post .siteContent .container {
  background: #ffffff;
}

/* 記事本文カード */
body.single-post .entry {
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid #9bd8f1;
  border-radius: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fcff 100%);
  box-shadow: 0 14px 35px rgba(11, 134, 197, 0.12);
}

/* 記事タイトル */
body.single-post .entry-title {
  position: relative;
  margin-bottom: 30px;
  padding: 30px 24px;
  border: 1px solid #9bd8f1 !important;
  border-radius: 22px;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.95), transparent 38%),
    linear-gradient(135deg, #dff4ff 0%, #ffffff 55%, #c8edff 100%);
  color: #005b8f;
  font-size: clamp(1.7rem, 3.4vw, 2.35rem);
  font-weight: 900;
  line-height: 1.45;
  text-align: center;
  box-shadow: 0 12px 30px rgba(11, 134, 197, 0.12);
}

body.single-post .entry-title::before {
  content: "建設業許可の役立つ情報";
  display: block;
  margin-bottom: 10px;
  color: #0b86c5;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

body.single-post .entry-title::after {
  content: "";
  display: block;
  width: 90px;
  height: 4px;
  margin: 18px auto 0;
  border-radius: 999px;
  background: #0b86c5;
}

/* 投稿日・カテゴリーなど */
body.single-post .entry-meta,
body.single-post .published,
body.single-post .entry-meta-data-list {
  color: #52616b;
  font-size: 0.92rem;
}

/* 本文 */
body.single-post .entry-body,
body.single-post .entry-content {
  color: #1f2937;
  font-size: 16px;
  line-height: 1.95;
}

/* 本文の段落 */
body.single-post .entry-body p,
body.single-post .entry-content p {
  margin-bottom: 1.35em;
}

/* 本文内の見出し h2 */
body.single-post .entry-body h2,
body.single-post .entry-content h2 {
  position: relative;
  margin: 46px 0 22px;
  padding: 18px 20px 18px 24px;
  border: none !important;
  border-left: 7px solid #0b86c5 !important;
  border-radius: 14px;
  background: #dff4ff;
  color: #005b8f;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 900;
  line-height: 1.5;
}

/* 本文内の見出し h3 */
body.single-post .entry-body h3,
body.single-post .entry-content h3 {
  margin: 34px 0 18px;
  padding: 14px 18px;
  border: 1px solid #9bd8f1 !important;
  border-radius: 12px;
  background: #eef9ff;
  color: #005b8f;
  font-size: 1.22rem;
  font-weight: 900;
}

/* リスト */
body.single-post .entry-body ul,
body.single-post .entry-content ul,
body.single-post .entry-body ol,
body.single-post .entry-content ol {
  margin: 20px 0 26px;
  padding: 22px 24px 22px 46px;
  border: 1px solid #9bd8f1;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(11, 134, 197, 0.08);
}

body.single-post .entry-body li,
body.single-post .entry-content li {
  margin-bottom: 0.65em;
}

/* 画像 */
body.single-post .entry-body img,
body.single-post .entry-content img {
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);
}

/* 表 */
body.single-post .entry-body table,
body.single-post .entry-content table {
  width: 100%;
  margin: 26px 0;
  border-collapse: collapse;
  border: 1px solid #9bd8f1;
  border-radius: 16px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(11, 134, 197, 0.08);
}

body.single-post .entry-body th,
body.single-post .entry-content th,
body.single-post .entry-body td,
body.single-post .entry-content td {
  padding: 14px 16px;
  border: 1px solid #d8eff9;
  vertical-align: top;
}

body.single-post .entry-body th,
body.single-post .entry-content th {
  background: #dff4ff;
  color: #005b8f;
  font-weight: 900;
}

/* 引用 */
body.single-post .entry-body blockquote,
body.single-post .entry-content blockquote {
  margin: 28px 0;
  padding: 22px 24px;
  border-left: 7px solid #f59e0b;
  border-radius: 14px;
  background: #fff8e8;
  color: #1f2937;
}

/* 記事下のCTAっぽいバナー画像 */
body.single-post .entry-body img[src*="banner"],
body.single-post .entry-content img[src*="banner"] {
  display: block;
  margin: 34px auto;
  border-radius: 16px;
}


/* =====================================================
   サイドバー
===================================================== */

body.single-post .sideSection {
  font-size: 14px;
}

body.single-post .sideSection .widget {
  margin-bottom: 24px;
  padding: 20px;
  border: 1px solid #9bd8f1;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(11, 134, 197, 0.08);
}

body.single-post .sideSection .widget-title,
body.single-post .sideSection .subSection-title {
  margin: 0 0 14px;
  padding: 10px 14px;
  border: none !important;
  border-radius: 999px;
  background: #dff4ff;
  color: #005b8f;
  font-size: 1rem;
  font-weight: 900;
}

body.single-post .sideSection a {
  color: #005b8f;
  text-decoration: none;
}

body.single-post .sideSection a:hover {
  text-decoration: underline;
}


/* =====================================================
   スマホ
===================================================== */

@media (max-width: 768px) {

  body.single-post .entry {
    padding: 22px 18px;
    border-radius: 18px;
  }

  body.single-post .entry-title {
    padding: 26px 18px;
    text-align: left;
    font-size: 1.55rem;
  }

  body.single-post .entry-title::after {
    margin-left: 0;
  }

  body.single-post .entry-body,
  body.single-post .entry-content {
    font-size: 15px;
    line-height: 1.9;
  }

  body.single-post .entry-body h2,
  body.single-post .entry-content h2 {
    margin-top: 34px;
    padding: 16px 16px 16px 20px;
    font-size: 1.28rem;
  }

  body.single-post .entry-body h3,
  body.single-post .entry-content h3 {
    font-size: 1.12rem;
  }

  body.single-post .entry-body ul,
  body.single-post .entry-content ul,
  body.single-post .entry-body ol,
  body.single-post .entry-content ol {
    padding: 18px 18px 18px 38px;
  }
}

/* =====================================================
   ブログ記事下 前の記事・次の記事 余白調整
===================================================== */

body.single-post .nav-links,
body.single-post .postNextPrev,
body.single-post .vk_posts.next-prev,
body.single-post .vk_post_imgOuter_singleTermLabel {
  margin-top: 34px;
}

/* 前の記事・次の記事ブロック全体 */
body.single-post .postNextPrev,
body.single-post .vk_posts.next-prev {
  clear: both;
  padding-top: 30px;
}

/* 前の記事・次の記事のカード */
body.single-post .postNextPrev .card,
body.single-post .vk_posts.next-prev .vk_post,
body.single-post .vk_posts.next-prev .media {
  overflow: hidden;
  border: 1px solid #9bd8f1;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(11, 134, 197, 0.10);
}

/* 画像の角丸調整 */
body.single-post .postNextPrev img,
body.single-post .vk_posts.next-prev img {
  display: block;
  border-radius: 18px;
}

/* 本文カードと前後記事の間をしっかり空ける */
body.single-post .entry,
body.single-post article {
  margin-bottom: 46px;
}