.site-body {
	padding-top: 0 ;
}

.wp-block-cover,
.wp-block-cover-image {
	padding: 0;
	margin-top: 0;
}

.wp-block-cover__inner-container {
	padding-block: 24px;
}

.wp-container-core-post-template-is-layout-4764eb0f > li {
	border: solid 1px #666;
	padding: 16px;
}

.is-layout-constrained > .alignwide {
	max-width: 100%;
	padding-inline: 0 !important;
}

.wp-block-columns.m-gallery {
	justify-content: center !important;
}

.wp-block-gallery.m-gallery figure.wp-block-image {
	aspect-ratio: 1/1;
}

.wp-block-columns.m-gallery > .wp-block-column > .wp-block-cover {
	aspect-ratio: 1/1;
	min-height: 100% !important;
}

/* ヘッダー・フッター等の共通パーツ */
h4.widget-title.site-footer-title,
.site-footer-content ul.menu li.menu-item,
.footer-nav {
	border-bottom: solid 1px #384799 !important;
}

h4.widget-title.site-footer-title::after {
	content: unset;
}

.site-footer-copyright p:nth-of-type(2) {
  display: none;
}

@media (max-width:768px) {
	body.blog .page-header {
		background-position: top 10% center !important;
	}
}

/* h1 にストライプ下線（色 #152999）を適用 */
body.post-name-profile h1,
body.post-name-project h1,
body.post-name-achievement h1 {
  position: relative;
  padding: 1.5rem 1rem;
}

body.post-name-profile h1::after,
body.post-name-project h1::after,
body.post-name-achievement h1::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  content: '';
  /* 斜めストライプの色を #152999 に */
  background-image: -webkit-repeating-linear-gradient(
    135deg,
    #152999,
    #152999 1px,
    transparent 2px,
    transparent 5px
  );
  background-image: repeating-linear-gradient(
    -45deg,
    #152999,
    #152999 1px,
    transparent 2px,
    transparent 5px
  );
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* プロフィールページのヘッダー帯ごと消す */
body.post-name-profile .page-header {
  display: none !important;
}

/* 実績ページのヘッダー帯ごと消す */
body.post-name-achievement .page-header {
  display: none !important;
}

/* 政策ページのヘッダー帯ごと消す */
body.post-name-project .page-header {
  display: none !important;
}

body.blog .page-header {
  background-image:
    linear-gradient(rgba(128,128,128,0.2), rgba(128,128,128,0.2)),
    url("/wp-content/uploads/2025/07/bg_nata-beach-torii.jpeg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  min-height: 200px;
}


h2.wp-block-heading {
	border-top: none !important;
	border-bottom: none !important;
	position: relative;
	text-align: center;
}

h2.wp-block-heading::after {
	position: absolute;
	content: "";
	display: block;
	width: 80px;
	height: 4px;
	background-color: #152999;
	inset-inline: 0;
	margin: auto;
	bottom: 0;
}

h3.wp-block-heading {
	border-bottom: none !important;
	padding-top: 12px;
    width: fit-content;
    margin-left: 0 !important;
}

h3.wp-block-heading::after {
    display: inline-block;
    position: relative;
    top: -0.38em;
    width: 120px;
    height: 1px;
    margin-left: 0.5em;
	background-color: #152999;
    content: "";
}

/* .uq-top-numpanel（TOP政策セクション） */
@media (max-width:768px) {
	.uq-top-button {
		width: 100% !important;
	}
}

.uq-top-numpanel {
	padding-inline: 0;
	max-width: 1100px;
	margin: auto;
}

li.uq-top-numpanel-item:first-child {
	margin-top: 0 !important;
}

li.uq-top-numpanel-item {
	padding: 12px 24px 2.4rem;
	background-color: #ffffff9c;
	margin-top: 32px !important;
}

.uq-top-numpanel-item::marker {
	font-size: 0;
}

.uq-top-numpanel-item__title {
	border-bottom: none;
	position: relative;
	padding-bottom: 0;
	margin-top: 24px;
}

.uq-top-numpanel-item__title::after {
	display: none;
}

.uq-top-numpanel-item__title-number {
	font-size: 48px;
    position: absolute;
    display: block;
	left: 0;
}

.uq-top-numpanel-item__title-text {
	font-size: 24px;
	position: relative;
	z-index: 10;
	display: block;
	width: fit-content;
}

.uq-top-numpanel-item__title-text::before {
  content: "";
  position: absolute;
	bottom: -9px;
  left: 0;
  width: 100%;
  height: 100%;
  background: #acc9e4;
  transform: skew(-20deg);
  z-index: -1;
}

.uq-top-numpanel-item__title {
	padding-left: 40px;
}

.uq-top-numpanel-item__title-text,
.uq-top-numpanel-item__title-number {
	color: #1170c8;
  text-shadow:
    -1px -1px 0 white,
     1px -1px 0 white,
    -1px  1px 0 white,
     1px  1px 0 white;
}

.wp-block-button,
.uq-top-numpanel-item__button > .wp-block-button {
	width: 100%;
	max-width: 100px;
}

.wp-block-button__link,
.uq-top-numpanel-item__button > .wp-block-button > a {
	color: #1170c8 !important;
	background-color: #fff !important;
}

.wp-block-button__link:hover,
.uq-top-numpanel-item__button > .wp-block-button > a:hover {
	border: solid 1px #fff !important;
	border-color: #fff !important;
}

.uq-top-linkpanel-item {
  transition: opacity 0.3s ease;
}

.uq-top-linkpanel-item:hover {
  opacity: 0.5;
}

@media (min-width:769px) {
	.wp-block-cover__inner-container {
		padding-block: 64px;
		padding-inline: 2.4rem;
	}

	.uq-top-numpanel {
		padding-inline: 0;
	}

	.uq-top-numpanel-item__title,
	.uq-top-numpanel-item-contents {
		padding-left: 56px;
	}

	.uq-top-numpanel-item__title-number {
		font-size: 64px;
	}

	.uq-top-numpanel-item__title-text {
		font-size: 36px;
	}

	.uq-top-numpanel-item__button > .wp-block-button {
		width: calc(25% - var(--wp--style--block-gap, .5em)*.75);
	}
}

@media (max-width:768px) {
	.wp-block-columns.m-gallery > .wp-block-column > .wp-block-cover {
		aspect-ratio: 4/1 !important;
	}

	.wp-block-cover__image-background.wp-image-447 {
		background-position: top 50% right 30% !important;
	}

	.adjust-top0 > .wp-block-cover__image-background {
		object-position: 0% 0%;
	}

	.adjust-top30 > .wp-block-cover__image-background {
		object-position: 0% 30%;
	}

	.adjust-top40 > .wp-block-cover__image-background {
		object-position: 0% 40% !important;
	}
}

/* module */
.m-media-layout {
	display: flex;
	justify-content: center;
	flex-direction: column-reverse;
	gap: 12px;
	margin-bottom: 24px;
}

.m-media-layout__image {
	max-width: 180px;
	margin: auto;
}

.m-box {
	padding: 24px 32px;
	background-color: #fff;
}

@media (min-width:769px) {
	.m-media-layout {
		flex-direction: row;
		gap: 24px;
	}

	.m-media-layout._vertical-center {
		align-items: center;
	}
	
	.m-media-layout__contents {
		width: 75%;
	}

	.m-media-layout__image {
		width: 20%;
		max-width: 250px;
		text-align: center;
	}
	
	.m-media-layout._imagesize15 .m-media-layout__image {
		width: 15%;		
	}
	
	.m-media-layout__image > img {
		width: 100%;
	}
	
}

.pc-only {
	display: block;
}

.sp-only {
	display: none;
}

@media (max-width:768px) {	
	.pc-only {
		display: none;
	}

	.sp-only {
		display: block;
	}
}

/* adjustment */
.u-mb-24 {
	margin-bottom: 2.4rem;
}

._adjust-maxwidth {
	max-width: 1100px;
	margin: auto;
	padding-inline: 0 !important;
}

._adjust-maxwidth > .wp-block-column {
	padding-inline: 0 !important;	
}

._adjust-button-seisaku {
	display: block;
}

._adjust-maxwidth .wp-block-buttons {
    width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* footer */
footer.site-footer {
	background-color: var(--vk-color-primary);
}

.footer-nav a {
	color: #fff !important;
}

.container.site-footer-content {
	color: #fff;
}

footer.site-footer li.menu-item > a,
.site-footer-copyright > p a,
.site-footer-copyright {
	color: #fff !important;
}

/* ベースサイズ（ホームページのメインビジュアル上だけ） */
body.home .custom-hero-title {
  font-size: 5rem !important;                  
  line-height: 1.2 !important;
  color: #ffffff !important;                    /* 白文字 */
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.8) !important; /* 周囲にぼかし影 */
}

.swiper-slide .container .btn-ghost {
	background-color: #ff773d;
	transition: .3s;
}

.swiper-slide .container .btn-ghost:hover {
  animation: pulsation .7s alternate infinite;
}

@keyframes pulsation {
  0% { transform: scale(1); }
  50% { transform: scale(0.9); }
  100% { transform: scale(1.1); }
}

@media (max-width: 768px) {
	/* 1) スライドのテキストコンテナを flex 化 */
		body.home .ltg-slide-text-set.mini-content .container {
		height: 100% !important;            /* 親と同じ高さ */
	}

  /* 2) タイトルはポジションをリセットして自然流れに */
	body.home .custom-hero-title {
		position: static !important;        /* 絶対配置をリセット */
		font-size: 21px !important;         /* モバイル時のサイズ */
		margin: 0 !important;               /* 不要余白リセット */
		line-height: 1.2 !important;        /* 行間 */
		text-align: center !important;      /* もう一度中央揃え */
	}

	.swiper-slide {
		position: relative;
		height: 100%;
	}

	.swiper-slide .mini-content {
		position: absolute;
		bottom: 120px;
		right: 0;
		height: fit-content;
	}

	.swiper-slide .container {
		width: fit-content;
		margin: auto;
	}

	.swiper-slide .ltg-slide-text-set {
		top: unset;
		left: unset;
		transform: unset;
	}
}

/* ホバー時にもオレンジ背景・白枠・白文字を維持 */
body.home .swiper-slide .container .btn-ghost:hover {
  background-color: #ff773d   !important;  /* オレンジ背景 */
  color:            #ffffff   !important;  /* 白文字 */
  border-color:     #ffffff   !important;  /* 白枠をキープ */
  animation:        pulsation .7s alternate infinite;
}

/* ──────────── 見出し下／ボタン上の余白調整 ──────────── */
/* デスクトップ時 */
body.home .custom-hero-title {
  margin-bottom: 1rem !important;    /* 2rem → 1rem */
}
body.home .swiper-slide .container .btn-ghost {
  margin-top:    0.5rem !important;  /* 1rem  → 0.5rem */
}

/* モバイル時（768px 以下）でさらに詰める */
@media (max-width: 768px) {
  body.home .custom-hero-title {
    margin-bottom: 0.25rem !important; /* 0.5rem → 0.25rem */
  }
  body.home .swiper-slide .container .btn-ghost {
    margin-top:    0.125rem !important; /* 0.25rem → 0.125rem */
  }
}

/* ① プロフィール下層ページだけに効かせる */
body.post-name-profile .m-media-layout__image > img {
  width: 80%;       /* お好みの％やpxで調整 */
  max-width: 200px; /* 必要に応じて最大幅も */
  height: auto;     /* アスペクト比を維持 */
}

@media (max-width: 768px) {
  /* プロフィール下層ページの .m-media-layout__image を中央配置 */
  body.post-name-profile .m-media-layout__image {
    /* flex コンテナ内で水平方向に中央寄せ */
    align-self: center !important;
    /* 余裕があれば余白リセット */
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* 画像自体もブロックにして中央寄せ */
  body.post-name-profile .m-media-layout__image > img {
    display: block !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 768px) {
  /* adjust-maxwidth コンテナに左右パディングを追加 */
  ._adjust-maxwidth {
    padding-inline: 1rem !important; /* 左右に1remずつ余白 */
  }
}

/* orange-underline クラス付き見出しだけオレンジ線に */
h2.wp-block-heading.orange-underline::after {
  background-color: #ff773d !important;  /* お好みのオレンジ色 */
}

/* ———————————————— */
/* 通常時：白背景・オレンジ文字・オレンジ枠 */
a.wp-block-button__link.hover-orange,
.wp-block-button.hover-orange .wp-block-button__link {
  background-color: #ffffff !important;
  color:            #ff773d !important;
  border:           1px solid #ff773d !important;
  transition:       background-color .2s, color .2s !important;
}

/* ———————————————— */
/* ホバー時：オレンジ背景・白文字・オレンジ枠 */
a.wp-block-button__link.hover-orange:hover,
.wp-block-button.hover-orange .wp-block-button__link:hover {
  background-color: #ff773d !important;
  color:            #ffffff !important;
  border-color:     #ff773d !important;
}

/* デフォルト（PC等）で行間27px */
.m-media-layout__contents {
  line-height: 27px !important;
}

/* モバイル（768px以下）で行間24pxに切り替え */
@media (max-width: 768px) {
  .m-media-layout__contents {
    line-height: 24px !important;
  }
}

/* 投稿者表示を非表示（一覧/記事/ブロック共通） */
.byline,
.author,
.vcard,
.entry-meta .author,
.posted-by,
.meta-author,
.single .meta-author,
.vk_post .vk_post_author,
.wp-block-post-author,
.wp-block-post-author__content,
.wp-block-post-author__byline { display: none !important; }

/* 区切りや “by/投稿者:” の装飾が残る場合の保険 */
.byline + .meta-sep,
.meta-sep.byline-sep,
.entry-meta .meta-sep,
.byline::before,
.posted-by::before { content: none !important; display: none !important; }
