@charset "UTF-8";
/*==========
Theme Name: 交通事故プロフェッショナル協会のテーマ
Theme URI: https://traffic-accident-pro.com
Description: 交通事故プロフェッショナル協会のSEOに極端に強く、とにかく使いやすくカスタマイズされたwordpressのテーマ
Author: moumuumow
Author URI: https://moumuumow.com
Version: 1.0
==========*/
/* =========================================================
   設定・変数・関数 (Configuration)
========================================================= */
@keyframes slideDown {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
/*======================================================================
  Reset CSS
======================================================================*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, t, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, main, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

article, aside, canvas, details, figcaption, figure,
header, footer, main, menu, nav, section, summary {
  display: block;
}

ul, ol {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

img {
  vertical-align: bottom;
  line-height: 1;
  width: 100%;
  height: auto;
}

/*======================================================================
  basic
======================================================================*/
html, body {
  box-sizing: border-box;
  height: 100%;
  font-size: 16px;
}
@media (max-width: 1024px) {
  html, body {
    font-size: 14px;
  }
}

body {
  width: 100%;
  line-height: 1.8;
  font-family: "Yu Gothic Medium", "Yu Gothic", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  color: #333333;
}

h1 {
  font-size: 14px;
  font-weight: normal;
}

h2, h2 a,
h2 span {
  font-weight: bold;
  font-size: 2.25rem;
}
@media (max-width: 1024px) {
  h2, h2 a,
  h2 span {
    font-size: 2rem;
  }
}

h3, h3 a, h4, h4 a, h4 span, h5, h5 a, h5 span {
  font-weight: bold;
  font-size: 1.5rem;
}

p {
  line-height: 1.8;
}

a {
  text-decoration: none;
  color: #2B96AA;
}

/* mouseover - opacity */
a:hover {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
  filter: alpha(opacity=70);
  opacity: 0.8;
  transition: opacity 680ms;
}

a {
  transition: opacity 680ms;
}

/*======================================================================
  block class
======================================================================*/
.flexstyle {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  -ms-align-items: center;
  align-items: center;
  justify-content: space-between;
}

@media (max-width: 1024px) {
  .smaflex {
    flex-direction: column;
  }
  footer .footbox .flexstyle.smaflex {
    flex-direction: column;
  }
  .smaflex > * {
    width: 100%;
    margin: 10px auto 20px;
  }
}

@media (max-width: 1024px) {
  .smaflex-reverse {
    flex-direction: column-reverse;
  }
  .smaflex-reverse > * {
    width: 100%;
    margin: 10px auto 20px;
  }
}

.imgbox {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  -ms-align-items: center;
  align-items: center;
  justify-content: space-around;
}

.buttonshadow {
  box-shadow: 0 3px 4px 3px rgba(50, 50, 50, 0.25);
  transition: all 0.6s;
}
.buttonshadow:hover {
  box-shadow: 0 0 0 0 rgba(50, 50, 50, 0.25);
  transition: all 0.6s;
}

.bluebutton1 {
  display: inline-block;
  text-align: center;
  color: #ffffff;
  font-weight: bold;
  background: #2B96AA;
  padding: 6px 40px;
  border-radius: 200px;
  box-shadow: 0 4px 0 0 #4B6B71;
}

.orangebutton1 {
  display: inline-block;
  text-align: center;
  color: #ffffff;
  font-weight: bold;
  background: #FF8A26;
  padding: 6px 40px;
  border-radius: 200px;
  box-shadow: 0 4px 0 0 #AD6A31;
}
@media (max-width: 1024px) {
  .orangebutton1 {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 10px;
  }
}

.orangebutton2 {
  display: inline-block;
  text-align: center;
  color: #ffffff;
  font-weight: bold;
  background: #FF8A26;
  font-size: 1.25rem;
  padding: 8px 40px;
  border-radius: 200px;
  margin-top: 20px;
  box-shadow: 0 3px 8px 3px rgba(80, 80, 80, 0.3);
  transition: all 0.6s;
}
@media (max-width: 1024px) {
  .orangebutton2 {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 10px;
  }
}
.orangebutton2:hover {
  box-shadow: 0 0 0 0 rgba(80, 80, 80, 0.3);
  transition: all 0.6s;
}

.bg_blue {
  background: #F7F9FA;
}

.bg_orange {
  background: #FFF9F3;
}

.w1280 {
  max-width: 1280px;
  margin: 0 auto;
  padding: 60px 0;
}
@media (max-width: 1024px) {
  .w1280 {
    padding: 40px 2%;
  }
}

.w1024 {
  max-width: 1024px;
  margin: 0 auto;
  padding: 30px 0;
}
@media (max-width: 1024px) {
  .w1024 {
    padding: 30px 2%;
  }
}

.fontspace {
  letter-spacing: 2.5px;
}

.link {
  margin-top: 40px;
  text-align: center;
}
@media (max-width: 1024px) {
  .link {
    margin-top: 30px;
  }
}
.link .linkstyle {
  font-size: 1.25rem;
  font-weight: bold;
  display: inline-block;
  position: relative;
  color: #2B96AA;
  padding: 0 35px 0 5px;
  border-bottom: 2px solid #2B96AA;
  transition: all 0.6s;
}
.link .linkstyle:hover {
  padding: 0 45px 0 5px;
  transition: all 0.6s;
  margin-left: 15px;
}
.link .linkstyle::after {
  content: "";
  position: absolute;
  bottom: -2px;
  right: 0;
  width: 22px;
  height: 2px;
  background: #2B96AA;
  transform: rotate(32deg);
  transform-origin: right bottom;
}

.linkbutton {
  text-align: center;
}
.linkbutton a {
  display: inline-block;
  padding: 15px 60px;
  border-radius: 5px;
  background: #2B96AA;
  font-weight: bold;
  color: #fff;
  font-size: 1.25rem;
}

.tophead2 {
  text-align: center;
  position: relative;
  padding-bottom: 10px;
  margin-bottom: 40px;
}
@media (max-width: 1024px) {
  .tophead2 {
    margin-bottom: 30px;
  }
}
.tophead2::after {
  content: "";
  display: block;
  position: absolute;
  width: 80px;
  height: 2px;
  background: #027988;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.tophead3 {
  text-align: center;
  margin-bottom: 10px;
}
.tophead3 span {
  display: inline-block;
  color: #fff;
  padding: 5px 25px;
  background: #004A67;
}

/* スマホ横スクロール */
/* PCで非表示（1025px以上） */
@media (min-width: 1025px) {
  .pcnone {
    display: none !important;
  }
}
/* スマホで非表示（1024px以下） */
@media (max-width: 1024px) {
  .smanone {
    display: none !important;
  }
}
/*======================================================================
  header
======================================================================*/
header {
  margin-bottom: 20px;
}
@media (max-width: 1024px) {
  header {
    margin-bottom: 0;
  }
}
header .headmenu {
  padding: 5px 10px;
  width: 100%;
  background: #fff;
  z-index: 999;
  transition: all 0.6s;
  box-sizing: border-box;
}
header .headmenu.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
  animation: slideDown 0.6s ease forwards;
}
header .headmenu .headtitle {
  width: 18%;
}
@media (max-width: 1024px) {
  header .headmenu .headtitle {
    width: 60%;
  }
}
@media (max-width: 520px) {
  header .headmenu .headtitle {
    width: 75%;
  }
}
header .headmenu .headnav {
  width: 64%;
}
header .headmenu .headnav ul li a {
  font-weight: bold;
  color: #333;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
}
header .headmenu .headnav ul li a::after {
  content: none;
}
header .headmenu .headnav ul li.menu-item-has-children > a::after {
  content: "";
  display: block;
  padding-left: 15px;
  width: 20px;
  height: 13px;
  background: #2B96AA;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
}
header .headmenu .headnav ul li.menu-item-has-children > a:hover::after {
  transform: translateY(3px);
}
header .headmenu .loginbutton {
  width: 14%;
  text-align: right;
}
@media (max-width: 1024px) {
  header .headmenu {
    /* --- スライドメニュー本体 --- */
  }
  header .headmenu .hamburger {
    position: relative;
    z-index: 1001;
    width: 48px;
    height: 48px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
  }
  header .headmenu .hamburger_line {
    display: block;
    width: 40px;
    height: 3px;
    background-color: #2B96AA;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  header .headmenu .hamburger.is-active .hamburger_line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  header .headmenu .hamburger.is-active .hamburger_line:nth-child(2) {
    opacity: 0;
  }
  header .headmenu .hamburger.is-active .hamburger_line:nth-child(3) {
    transform: translateY(-14px) rotate(-45deg);
  }
  header .headmenu .global-nav {
    position: fixed;
    top: 0;
    right: 0;
    width: 86%;
    height: 100vh;
    background-color: #fff;
    z-index: 999;
    padding-top: 80px;
    padding-bottom: 80px;
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  }
  header .headmenu .global-nav .smanavtitle {
    font-size: 1.75rem;
    letter-spacing: 4px;
    text-align: center;
    font-weight: bold;
    margin-bottom: 15px;
    color: #004A67;
    padding-bottom: 3px;
    position: relative;
  }
  header .headmenu .global-nav .smanavtitle::after {
    content: "";
    display: block;
    width: 15%;
    height: 1px;
    background: #004A67;
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
  }
  header .headmenu .global-nav_list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  header .headmenu .global-nav_item {
    border-bottom: 1px solid #eee;
  }
  header .headmenu .global-nav_item a {
    font-size: 1.25rem;
    display: block;
    padding: 15px 20px;
    text-decoration: none;
    color: #2B96AA;
    font-weight: bold;
    transition: background 0.2s;
  }
  header .headmenu .global-nav_item a:hover {
    background: #f9f9f9;
  }
  .smanavlogin-button {
    width: 80%;
    margin: 20px auto;
  }
  .smanavlogin-button a {
    padding: 10px;
    font-size: 1.25rem;
  }
  header .headmenu .global-nav.is-active {
    transform: translateX(0);
    box-shadow: -4px 0 10px rgba(0, 0, 0, 0.1);
  }
  header .headmenu .overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 74, 103, 0.75);
    z-index: 900;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
  }
  header .headmenu .overlay.is-active {
    opacity: 1;
    visibility: visible;
  }
}

/* PCメニューのみ */
@media (min-width: 1025px) {
  header .headmenu .headnav .menu,
  header .headmenu .headnav .flexstyle {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  header .headmenu .headnav .menu > li,
  header .headmenu .headnav .flexstyle > li {
    position: relative;
  }

  /* 子メニューは待機状態 */
  header .headmenu .headnav .sub-menu {
    display: block;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;

    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    min-width: 260px;
    background: #fff;
    border: 1px solid #e5e5e5;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    padding: 10px 0;
    z-index: 1000;
  }

  header .headmenu .headnav .sub-menu li {
    width: 100%;
  }

  header .headmenu .headnav .sub-menu li a {
    display: block;
    padding: 10px 16px;
    font-size: 14px;
    color: #333;
    white-space: nowrap;
  }

  /* 子メニュー内の矢印は消す */
  header .headmenu .headnav .sub-menu li a::after {
    content: none;
  }

  header .headmenu .headnav .menu > li.is-open > a::after {
    transform: translateY(3px);
  }

  /* JSで is-open が付いた時だけ開く */
  header .headmenu .headnav .menu > li.is-open > .sub-menu,
  header .headmenu .headnav .flexstyle > li.is-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  /* 子あり親リンク */
  header .headmenu .headnav .menu > li.menu-item-has-children > a,
  header .headmenu .headnav .flexstyle > li.menu-item-has-children > a {
    cursor: pointer;
  }
}

header .main-visual {
  width: 100%;
  aspect-ratio: 1920/700;
  position: relative;
  overflow: hidden;
}
@media (max-width: 1024px) {
  header .main-visual {
    aspect-ratio: 2/3;
  }
}
header .main-visual .swiper, header .main-visual .swiper-wrapper, header .main-visual .swiper-slide {
  width: 100%;
  height: 100%;
}
header .main-visual .swiper-slide {
  position: relative;
  overflow: hidden;
}
header .main-visual .swiper-slide .slide-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  z-index: 1;
}
header .main-visual .swiper-slide .slide-content {
  position: absolute;
  z-index: 2;
  top: 25%;
  left: 10%;
  padding-left: 5px;
}
@media (max-width: 1024px) {
  header .main-visual .swiper-slide .slide-content {
    top: 35%;
    left: 0;
    margin: 0 10%;
  }
}
header .main-visual .swiper-slide .slide-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #FFFB95;
  z-index: -1;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
}
header .main-visual .swiper-slide .slide-content .slide-title {
  font-size: 2.5rem;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.4;
  color: #333;
}
@media (max-width: 1024px) {
  header .main-visual .swiper-slide .slide-content .slide-title {
    font-size: 1.75rem;
  }
}
header .main-visual .swiper-slide .slide-content .slide-text {
  font-size: 1.25rem;
  font-weight: bold;
  color: #333;
}
@media (max-width: 1024px) {
  header .main-visual .swiper-slide .slide-content .slide-text {
    font-size: 1.25rem;
  }
}
header .main-visual .swiper-slide .slide-content .slide-btn {
  display: inline-block;
  padding: 15px 40px;
  background: #fff;
  color: #004A67;
  font-weight: bold;
  border-radius: 50px;
}
header .main-visual .swiper-slide .slide-content .slide-btn:hover {
  background: #f0f0f0;
}
header .main-visual .swiper-button-next, header .main-visual .swiper-button-prev {
  display: inline-block;
  background: rgba(255, 255, 255, 0.5);
  color: #2B96AA;
  padding: 20px;
  border: 2px solid #2B96AA;
}
@media (max-width: 1024px) {
  header .main-visual .swiper-button-next, header .main-visual .swiper-button-prev {
    padding: 30px 5px;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  }
}
@media (max-width: 1024px) {
  header .main-visual .swiper-button-next {
    left: inherit;
    right: 0;
  }
}
header .main-visual .swiper-pagination .swiper-pagination-bullet {
  width: 15px;
  height: 15px;
  margin: 0 12px;
}
header .main-visual .swiper-pagination .swiper-pagination-bullet-active {
  background: #2B96AA;
}
header .main-visual .mvbutton {
  position: absolute;
  left: 10%;
  bottom: 15%;
  z-index: 5;
  gap: 30px;
}
@media (max-width: 1024px) {
  header .main-visual .mvbutton {
    left: 50%;
    bottom: 8%;
    transform: translateX(-50%);
    width: 100%;
    padding: 0 10px;
    box-sizing: border-box;
  }
  header .main-visual .mvbutton .mvgaiyou {
    width: 65%;
  }
  header .main-visual .mvbutton .mvdl {
    width: 34%;
  }
}
header .main-visual .mvbutton .mvgaiyou a {
  display: block;
  padding: 5px 15px;
  background: #fff;
  border: 2px solid #004A67;
  border-radius: 10px;
  color: #2B96AA;
  font-weight: bold;
  line-height: 1.5;
}
header .main-visual .mvbutton .mvdl a {
  display: block;
  padding: 15px 60px;
  background: #2B96AA;
  border: 2px solid #2B96AA;
  border-radius: 10px;
  color: #fff;
  font-weight: bold;
  position: relative;
}
@media (max-width: 1024px) {
  header .main-visual .mvbutton .mvdl a {
    padding: 15px;
    text-align: center;
  }
}
header .main-visual .mvbutton .mvdl a::before {
  content: "";
  width: 50px;
  height: 50px;
  position: absolute;
  top: -20px;
  left: -20px;
  background: url("images/muryou_before.png") no-repeat center;
  background-size: contain;
}
@media (max-width: 1024px) {
  header .main-visual .mvbutton .mvdl a::before {
    width: 45px;
    height: 45px;
  }
}
header .MVlinks,
footer .MVlinks {
  gap: 40px;
  padding: 30px 0;
}
header .MVlinks li,
footer .MVlinks li {
  width: 23%;
}
header .MVlinks.is-scrollable,
footer .MVlinks.is-scrollable {
  flex-wrap: nowrap;
  justify-content: flex-start;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  padding-bottom: 20px;
}

header .MVlinks.is-scrollable::-webkit-scrollbar,
footer .MVlinks.is-scrollable::-webkit-scrollbar {
  height: 6px;
}
header .MVlinks.is-scrollable::-webkit-scrollbar-thumb,
footer .MVlinks.is-scrollable::-webkit-scrollbar-thumb {
  background: #2B96AA;
  border-radius: 6px;
}

header .MVlinks.is-scrollable li,
footer .MVlinks.is-scrollable li {
  width: 20%;
  flex-shrink: 0;
  scroll-snap-align: start;
}

@media (max-width: 1024px) {
  header .MVlinks.is-scrollable,
  footer .MVlinks.is-scrollable {
      gap: 15px;
      padding-left: 10px;
      padding-right: 10px;
  }
  header .MVlinks.is-scrollable li,
  footer .MVlinks.is-scrollable li {
      width: 60vw;
      margin-bottom: 0;
  }
}
@media (max-width: 1024px) {
  header .MVlinks,
  footer .MVlinks  {
    flex-wrap: wrap;
    padding: 3%;
    gap: 3%;
  }
  header .MVlinks li,
  footer .MVlinks li {
    width: 48.5%;
    margin-bottom: 2%;
  }
}

/* footer下部 固定LINEボタン */
.footer-line-fixed {
	position: fixed;
	left: 0;
	bottom: 0;
	width: 100%;
	z-index: 9999;
	padding: 10px 12px;
	box-sizing: border-box;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);

	transform: translateY(120%);
	opacity: 0;
	visibility: hidden;
	transition: transform 0.35s ease, opacity 0.35s ease, visibility 0.35s ease;
}

.footer-line-fixed.is-show {
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
}

.footer-line-fixed a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 60px;
	background: url("images/lineicon_w.png") no-repeat 15px center #00B800;
  background-size: 10%;
	border-radius: 999px;
	text-decoration: none;
	box-shadow: 0 4px 10px rgba(6, 199, 85, 0.28);
}

.footer-line-fixed__sub {
	display: block;
	font-size: 11px;
	line-height: 1.2;
	color: #fff;
	opacity: 0.95;
}

.footer-line-fixed__main {
	display: block;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
}

/* ボタン表示時にコンテンツが隠れないように */
body.has-fixed-line-contact {
	padding-bottom: 80px;
}

/* pagetop が被らないように */
@media screen and (max-width: 767px) {
  footer {
    padding-bottom: 80px;
  }
	.footer-line-fixed {
		display: block;
	}

	.pagetop {
		bottom: 95px;
	}
}

@media screen and (min-width: 768px) {
	.footer-line-fixed {
		display: none;
	}
}

main .partners .loop-section {
  overflow: hidden;
  background: #f9f9f9;
}
main .partners .loop-wrap {
  display: flex;
  width: 100%;
  margin-bottom: 20px;
  backface-visibility: hidden;
  will-change: transform;
}
main .partners .loop-wrap .loop-list {
  display: flex;
  gap: 20px;
  padding-right: 20px;
  animation: loopScroll 30s linear infinite;
}
main .partners .loop-wrap.loop-reverse .loop-list {
  animation: loopScrollReverse 30s linear infinite;
}
main .partners .loop-item {
  width: 160px;
  flex-shrink: 0;
}
@keyframes loopScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}
@keyframes loopScrollReverse {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
main .partners .flexstyle {
  flex-wrap: wrap;
  gap: 20px;
  justify-content: flex-start;
}
main .partners .flexstyle li {
  width: 20%;
}
main .partners .link {
  margin-top: 25px;
}
main .about .about_imgpart {
  width: 40%;
}
@media (max-width: 1024px) {
  main .about .about_imgpart {
    width: 80%;
    margin: 10px auto 20px;
  }
}
main .about .about_detail {
  width: 48%;
}
@media (max-width: 1024px) {
  main .about .about_detail {
    width: 100%;
  }
}
main .about .about_detail h2 {
  margin: 15px 0;
  font-size: 1.5rem;
}
main .about .about_detail p {
  font-size: 1.25rem;
  font-weight: bold;
}
@media (max-width: 1024px) {
  main .about .link {
    margin-top: 10px;
  }
}
main .support .growup {
  margin-bottom: 60px;
}
main .support .headspan {
  text-align: center;
  margin-bottom: 30px;
}
main .support .headspan span {
  position: relative;
  display: inline-block;
  z-index: 1;
}
main .support .headspan span::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: #FFFB95;
  z-index: -1;
  clip-path: polygon(0 85%, 100% 35%, 100% 100%, 0 100%);
}
main .support h4 {
  margin-bottom: 20px;
  text-align: center;
}
main .support .growup3 {
  margin-bottom: 40px;
}
main .support .worries {
  margin: 0 auto 30px;
}
main .support .worries li {
  margin-bottom: 5px;
  font-size: 1.25rem;
  padding: 10px 0 10px 60px;
  background: url("images/checkbox1.png") no-repeat left 7px;
  background-size: 50px;
}
main .support .growup_imgpart {
  width: 46%;
}
@media (max-width: 1024px) {
  main .support .growup_imgpart {
    width: 80%;
    margin: 10px auto 0;
  }
}
main .support .growup_detail {
  width: 52%;
  background: #fff;
  position: relative;
  padding: 20px 20px 20px 60px;
  box-sizing: border-box;
  font-size: 1.25rem;
  font-weight: bold;
}
@media (max-width: 1024px) {
  main .support .growup_detail {
    width: 100%;
    padding: 40px 15px 15px 15px;
  }
}
main .support .growup_detail::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 6%;
  height: 100%;
  background: #FFF9F3;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
}
@media (max-width: 1024px) {
  main .support .growup_detail::after {
    width: 100%;
    height: 8%;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }
}
main .support .growup_detail ul {
  margin: 10px 0;
}
main .support .growup_detail ul li {
  margin-top: 5px;
}
main .support .growup_detail ul li:first-child {
  margin-top: 0;
}
main .support .growup_detail ul li span {
  background: #FFFB95;
  display: inline-block;
  padding: 3px 5px;
}
main .support .growupfeature_imgpart {
  width: 46%;
}
@media (max-width: 1024px) {
  main .support .growupfeature_imgpart {
    width: 80%;
    margin: 0 auto 20px;
  }
}
main .support .growupfeature_detail {
  width: 52%;
}
@media (max-width: 1024px) {
  main .support .growupfeature_detail {
    width: 100%;
  }
}
main .support .growupfeature_detail h4 {
  font-size: 2.25rem;
  letter-spacing: 2px;
  margin-bottom: 20px;
}
main .support .growupfeature_detail h4 span {
  font-size: 3.5rem;
  padding: 0 3px;
}
main .support .growupfeature_detail ol {
  display: inline-block;
  margin: 0 auto;
}
main .support .growupfeature_detail ol li {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 10px;
  background: url("images/checkbox1.png") no-repeat left 7px;
  background-size: 40px;
  padding: 5px 0 5px 45px;
}

.studycards {
  align-items: stretch;
}

main .support .casestudy .studycards > li {
  width: 30%;
  display: flex;
}

main .support .casestudy .studycards > li .studycards_inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  flex: 1;
  min-height: 320px;
  border: 2px solid #004A67;
  border-radius: 10px;
  background: #fff;
  padding: 15px 20px 15px;
  color: #333;
}

main .support .casestudy .studycards > li h4 {
  padding-top: 25px;
  position: relative;
  font-size: 1.5rem;
  margin-bottom: 20px;
  line-height: 1.5;
}

main .support .casestudy .studycards > li h4::before {
  content: "";
  display: block;
  width: 25%;
  height: 25px;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background: url("images/case1.png") no-repeat top center;
  background-size: contain;
}

main .support .casestudy .studycards > li h4::after {
  content: "";
  display: block;
  width: 30%;
  height: 2px;
  background: #027988;
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
}

main .support .casestudy .studycards > li:nth-child(2) h4::before {
  background: url("images/case2.png") no-repeat top center;
  background-size: contain;
}

main .support .casestudy .studycards > li:nth-child(3) h4::before {
  background: url("images/case3.png") no-repeat top center;
  background-size: contain;
}

main .support .casestudy .studycards > li .studycards_text {
  margin: 12px 0 20px;
  line-height: 1.8;
  font-size: 0.95rem;
  text-align: left;
  word-break: break-word;
  overflow-wrap: anywhere;
}

main .support .casestudy .studycards > li .studycards_link {
  margin-top: auto;
  text-align: center;
}

main .support .casestudy .studycards > li .studycards_link a {
  font-weight: bold;
  color: #2B96AA;
  text-decoration: underline;
}

@media (max-width: 1024px) {
  main .support .casestudy .studycards {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 15px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 10px;
    padding: 15px 20px;
    background: #fff;
  }

  main .support .casestudy .studycards::-webkit-scrollbar {
    height: 4px;
  }

  main .support .casestudy .studycards::-webkit-scrollbar-thumb {
    background: #2B96AA;
    border-radius: 4px;
  }

  main .support .casestudy .studycards > li {
    width: 70vw;
    flex-shrink: 0;
    scroll-snap-align: start;
  }

  main .support .casestudy .studycards > li .studycards_inner {
    min-height: auto;
  }
}

main .professionals .prolist {
  margin-bottom: 30px;
}
@media (max-width: 1024px) {
  main .professionals .prolist {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 15px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 10px;
    padding: 15px 20px;
    background: #fff;
  }
  main .professionals .prolist::-webkit-scrollbar {
    height: 4px;
  }
  main .professionals .prolist::-webkit-scrollbar-thumb {
    background: #2B96AA;
    border-radius: 4px;
  }
}
main .professionals .prolist .prolistinner {
  width: 30%;
}
@media (max-width: 1024px) {
  main .professionals .prolist .prolistinner {
    width: 70vw;
    flex-shrink: 0;
    scroll-snap-align: start;
  }
}
main .professionals .prolist .procards {
  display: block;
  border: 2px solid #004A67;
  border-radius: 10px;
  overflow: hidden;
  color: #333;
}
main .professionals .prolist .procards .proimg {
  margin-bottom: 10px;
}
main .professionals .prolist .procards div {
  padding: 15px;
}
main .professionals .prolist .procards h3 {
  margin: 0 20px 15px;
  font-size: 1.25rem;
  color: #004A67;
}
main .professionals .prolist .procards ul {
  justify-content: flex-start;
  margin-bottom: 15px;
}
main .professionals .prolist .procards ul li {
  margin-left: 10px;
  padding: 2px 3px;
  background: #FFFB95;
  font-size: 0.85rem;
}
main .professionals .prolist .procards ul li:first-child {
  margin-left: 0;
}
main .professionals .prolist .procards .prologo {
  max-width: 50%;
}
main .professionals .prolist .procards .proname {
  font-size: 0.85rem;
  font-weight: bold;
}
.expert-review .testimonials {
  align-items: stretch;
}

.expert-review .testimonial-card {
  display: flex;
  border: 3px solid #2B96AA;
  border-radius: 10px;
  overflow: hidden;
  width: 30%;
  background: #fff;
}

.expert-review .testimonial-card__inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  color: inherit;
}

.expert-review .testimonial-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #F7F9FA;
}

.expert-review .testimonial-card__avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.expert-review .testimonial-card__content {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.expert-review .testimonial-card__content_name {
  padding: 5px 10px;
  background: #2B96AA;
  color: #fff;
}

.expert-review .testimonial-card .testimonial-card__content_inner {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 10px;
  background: #F7F9FA;
}

.expert-review .testimonial-card .testimonial-card__designation {
  color: #ffffff;
}

.expert-review .testimonial-card .testimonial-card__one-liner {
  background: #FFFB95;
  padding: 10px;
  color: #333333;
  font-weight: bold;
  margin-bottom: 10px;
  line-height: 1.7;
  min-height: calc(1.7em * 3);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}

.expert-review .testimonial-card .testimonial-card__more {
  display: block;
  text-align: center;
  text-decoration: underline;
  font-weight: bold;
  margin-top: auto;
}

@media (max-width: 1024px) {
  main .expert-review .testimonials {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 15px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 10px;
    padding: 15px 20px;
    background: #fff;
  }

  main .expert-review .testimonials::-webkit-scrollbar {
    height: 4px;
  }

  main .expert-review .testimonials::-webkit-scrollbar-thumb {
    background: #2B96AA;
    border-radius: 4px;
  }

  main .expert-review .testimonial-card {
    width: 70vw;
    flex-shrink: 0;
    scroll-snap-align: start;
  }
}
main .greed .greed_imgpart {
  width: 52%;
  flex-wrap: wrap;
}
@media (max-width: 1024px) {
  main .greed .greed_imgpart {
    width: 95%;
  }
}
main .greed .greed_imgpart img {
  border-radius: 100%;
  width: 40%;
  border: 3px solid #004A67;
}
main .greed .greed_imgpart div {
  width: 54%;
}
main .greed .greed_imgpart div .companyname {
  font-weight: bold;
  letter-spacing: 2px;
  margin-bottom: 10px;
}
main .greed .greed_imgpart div .daihyouname {
  font-size: 1.5rem;
  font-weight: bold;
}
.rep-profile-block.flexstyle {
    display: flex;
    align-items: center;
    gap: 30px;
    background: #fff;
    padding: 20px;
    border-radius: 15px;
    justify-content: flex-start;
}

.rep-image-area {
    flex: 0 0 30%; /* PCで画像の幅を30%に固定 */
}

.rep-image-area img {
    border-radius: 100%;
    width: 100%;
    height: auto;
    border: 3px solid #004A67;
    object-fit: cover;
}

.rep-info-area {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rep-text-info .companyname {
    font-weight: bold;
    letter-spacing: 1px;
    margin-bottom: 5px;
    line-height: 1.4;
    color: #666;
}

.rep-text-info .daihyouname {
    font-size: 1.75rem;
    font-weight: bold;
    color: #333;
}

main .greed .greed_imgpart div.rep-sns-wrapper {
    display: flex;
    gap: 10px;
    width: 100%;
    margin-top: 15px;
}

.rep-sns-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 15px;
    border-radius: 50px;
    color: #ffffff !important;
    text-decoration: none !important;
    font-weight: bold;
    font-size: 14px;
    transition: 0.3s;
    flex: 1;
    max-width: 160px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.rep-sns-btn:hover {
    transform: translateY(-2px);
    opacity: 0.9;
}

.rep-sns-btn.is-insta {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.rep-sns-btn.is-fb {
    background-color: #1877F2;
}

.rep-sns-icon {
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
}
@media (max-width: 768px) {
    .rep-profile-block.flexstyle {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }
    .rep-image-area {
        width: 50%; /* スマホでは画像を少し小さめに */
    }
    .rep-info-area {
        width: 100%;
        align-items: center;
    }
    .rep-sns-wrapper {
        width: 100%;
        justify-content: center;
    }
    .rep-sns-btn {
        max-width: none;
    }
}
main .greed .greed_detail {
  width: 50%;
  background: #fff;
  padding: 20px 20px 20px 60px;
  position: relative;
  font-size: 1.5rem;
  font-weight: bold;
  box-sizing: border-box;
}
@media (max-width: 1024px) {
  main .greed .greed_detail {
    width: 100%;
    padding: 40px 15px 15px 15px;
  }
}
main .greed .greed_detail::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 8%;
  height: 100%;
  background: #F7F9FA;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
@media (max-width: 1024px) {
  main .greed .greed_detail::after {
    width: 100%;
    height: 8%;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }
}
main .greed .greed_detail p {
  margin: 0 auto;
}
main .greed .greed_detail strong {
  background: #FFFB95;
  padding: 3px 2px;
}

.downloads_contents {
  color: #fff;
  background: #2B96AA;
}
.downloads_contents .w1280 {
  padding: 30px;
}
.downloads_contents h2 {
  padding-bottom: 0;
  margin-bottom: 10px;
}
.downloads_contents h2::after {
  content: none;
}
.downloads_contents p {
  color: #fff;
  text-align: center;
  margin-bottom: 30px;
  font-size: 1.25rem;
}
.downloads_contents .dlbox {
  padding: 20px 30px 30px;
  background: #fff;
  justify-content: space-around;
}
@media (max-width: 1024px) {
  .downloads_contents .dlbox {
    padding: 20px 30px 30px;
  }
}
.downloads_contents .dlbox li {
  width: 44%;
  text-align: center;
}
@media (max-width: 1024px) {
  .downloads_contents .dlbox li {
    width: 100%;
    margin: 40px 0 0 0;
  }
  .downloads_contents .dlbox li:first-child {
    margin: 0 0 0 0;
  }
}
.downloads_contents .dlbox li h3 {
  margin-bottom: 5px;
  text-align: center;
}
@media (max-width: 1024px) {
  .downloads_contents .dlbox li h3 {
    margin-bottom: 10px;
  }
}
.downloads_contents .dlbox li a.imgbox {
  position: relative;
  z-index: 1;
}
.downloads_contents .dlbox li a.imgbox::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0, 74, 103, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  transition: all 0.6s;
}
.downloads_contents .dlbox li a.imgbox:hover::after {
  background: rgba(0, 74, 103, 0);
}
.downloads_contents .dlbox li a.imgbox span {
  display: inline-block;
  position: absolute;
  z-index: 3;
  color: #fff;
  padding: 10px 30px;
  border: 2px solid #fff;
  text-decoration: underline;
  font-weight: bold;
  transition: all 0.6s;
}
.downloads_contents .dlbox li a.imgbox:hover span {
  background: #2B96AA;
  border-radius: 50px;
  border: 2px solid #2B96AA;
}

.faq dl {
  max-width: 784px;
  margin: 0 auto;
  border: 2px solid #027988;
}
.faq dl dt {
  padding: 15px 70px 15px 15px;
  position: relative;
  font-size: 1.25rem;
  font-weight: bold;
  border-top: 2px solid #027988;
  cursor: pointer;
  perspective: 600px;
  color: #2B96AA;
  transition: all 0.6s;
}
.faq dl dt:hover {
  background: #2B96AA;
  color: #fff;
}
.faq dl dt:first-child {
  border-top: none;
}
.faq dl dt::after {
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  width: 50px;
  height: 33px;
  transform: translateY(-50%) scaleY(1);
  transform-origin: center;
  background: #2B96AA;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M4 4 L12 12 L20 4' stroke='black' stroke-width='1.5' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M4 4 L12 12 L20 4' stroke='black' stroke-width='1.5' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") no-repeat center/contain;
}
.faq dl dt:hover::after {
  background: #fff;
  transition: all 0.6s;
}
.faq dl dt.move {
  background: #2B96AA;
  color: #fff;
}
.faq dl dt.move::after {
  background: #fff;
  transform: translateY(-50%) scaleY(-1);
}
.faq dl dd {
  background: #fff;
  padding: 15px;
  font-size: 1.25rem;
}

.contactform .w1024 > p {
  text-align: center;
}
@media (max-width: 1024px) {
  .contactform .w1024 > p {
    margin-bottom: 20px;
  }
}

.contactform .m3formbox {
  max-width: 784px;
  margin: 30px auto 0;
  background: #F7F9FA;
  padding: 40px;
  box-sizing: border-box;
}

.contactform .m3formbox label {
  font-size: 1.5rem;
  font-weight: bold;
}

.contactform .m3formbox label input,
.contactform .m3formbox label textarea {
  border-radius: 0;
  padding: 5px;
  font-size: 1.5rem;
  width: 100%;
  margin-bottom: 15px;
  border: 2px solid #333;
  box-shadow: inset 0 0 4px 0px #cccccc;
  box-sizing: border-box;
}

.contactform .wpcf7-form-control::placeholder {
  color: rgba(0,0,0,0.4);
}

.contactform .wpcf7-form-control::-webkit-input-placeholder {
  color: rgba(0,0,0,0.4);
}

.contactform .wpcf7-form-control::-moz-placeholder {
  color: rgba(0,0,0,0.4);
}

.contactform .wpcf7-form-control:-ms-input-placeholder {
  color: rgba(0,0,0,0.4);
}

.contactform .m3formbox .wpcf7-submit {
  font-size: 1.5rem;
  font-weight: bold;
  color: #fff;
  display: block;
  width: 50%;
  margin: 0 auto;
  padding: 20px;
  border: none;
  border-radius: 10px;
  background: #2B96AA;
  box-shadow: 0 5px 0 0 #9CBBC1;
}

.m3formbox .wpcf7-submit {
  display:block;
  margin:0 auto;
}

@media (max-width: 1024px) {
  .contactform .m3formbox  {
    padding: 15px;
  }
  .contactform .m3formbox .wpcf7-submit {
    padding: 10px;
    width: 60%;
  }
}


.contactform .w1024 .contacttel {
  background: #EDF7EF;
  border: 5px solid #3EB157;
  padding: 20px;
  box-sizing: border-box;
  max-width: 784px;
  margin: 40px auto 0;
}
.contactform .w1024 .contacttel h3 {
  color: #333333;
  margin-bottom: 5px;
  text-align: center;
}
.contactform .w1024 .contacttel .contacttel_detail {
  font-size: 0.85rem;
  margin-bottom: 10px;
  text-align: center;
}

.telbox {
  margin-bottom: 10px;
  text-align: center;
}
.telbox a {
  display: inline-block;
  margin-bottom: 20px;
  padding: 5px 0 5px 110px;
  line-height: 1.5;
  background: url("images/lineicon.png") no-repeat left center;
  background-size: contain;
  font-size: 3.5rem;
  font-weight: bold;
  color: #3EB157;
  font-family: "TsukuARdGothic-Regular", "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro", "BIZ UDGothic", "Meiryo", sans-serif;
  letter-spacing: 4px;
}
@media (max-width: 1024px) {
  .telbox a {
    padding: 5px 0 5px 55px;
    font-size: 1.75rem;
    width: 100%;
    text-align: center;
    box-sizing: border-box;
    background-size: 50px;
  }
}
.telbox a span {
  border-bottom: 2px solid #3EB157;
}
@media (max-width: 1024px) {
  .telbox a span {
    letter-spacing: 1px;
  }
}
.telbox p span {
  display: block;
  padding: 5px 10px;
  font-size: 1.25rem;
  color: #3EB157;
  border: 2px solid #3EB157;
}
/* LINE 共通CTA */
.cta-contact {
  background: #EDF7EF;
  border: 5px solid #3EB157;
  padding: 20px;
  box-sizing: border-box;
  max-width: 1024px;
  margin: 40px auto 0;
}
.cta-contact__inner {
}
.cta-contact_read {
  width: 48%;
}
.cta-contact__btn {
  display:block;
  text-decoration:none;
  border-radius:12px;
  padding:22px;
  color:#fff;
  transition:.25s;
}
.cta-contact__btn:hover {
  transform:translateY(-3px);
  opacity:.9;
}
.cta-contact__btn--tel {
  background:#222;
}
.cta-contact__btn--line {
  background:#06C755;
  width: 50%;
  text-align: center;
  background: url("images/lineicon_w.png") no-repeat 20px center #06C755;
  background-size: 60px;
  box-sizing: border-box;
}
@media (max-width: 1024px) {
  .cta-contact_read {
    width: 100%;
  }
  .cta-contact__btn--line {
    width: 100%;
  }
}
.cta-contact__label{
  display:block;
  font-size:14px;
  opacity:.8;
}
.cta-contact__value{
  display:block;
  font-size:22px;
  font-weight:700;
  margin-top:4px;
}
@media(max-width:768px){
  .cta-contact__inner{
    grid-template-columns:1fr;
  }
}
.aboutcompany .w1024 {
  padding: 0;
}
@media (max-width: 1024px) {
  .aboutcompany .w1024 {
    padding: 20px 0;
  }
}
.aboutcompany .w1024 .companyinfolist {
  border-bottom: 1px solid #333;
  flex-wrap: wrap;
  justify-content: flex-start;
}
@media (max-width: 1024px) {
  .aboutcompany .w1024 .companyinfolist {
    display: flex;
    flex-wrap: wrap;
  }
}
.aboutcompany .w1024 .companyinfolist dt {
  width: 25%;
  color: #AAAAAA;
  font-size: 1.75rem;
  font-weight: bold;
  padding: 20px 0 20px 10px;
  box-sizing: border-box;
  letter-spacing: 2px;
  border-top: 1px solid #333;
}
@media (max-width: 1024px) {
  .aboutcompany .w1024 .companyinfolist dt {
    width: 100%;
    font-size: 1.5rem;
    text-align: center;
    padding: 20px 0 5px 0;
  }
}
.aboutcompany .w1024 .companyinfolist dd {
  width: 75%;
  font-size: 1.75rem;
  font-weight: bold;
  padding: 20px 0;
  box-sizing: border-box;
  letter-spacing: 2px;
  border-top: 1px solid #333;
}
@media (max-width: 1024px) {
  .aboutcompany .w1024 .companyinfolist dd {
    width: 100%;
    font-size: 1.5rem;
    text-align: center;
    border-top: none;
    padding: 5px 0 20px 0;
  }
}

footer .footlinks {
  gap: 40px;
  padding: 30px 0;
  margin: 60px auto 40px;
}
footer .footlinks li {
  width: 23%;;
}
@media (max-width: 1024px) {
  footer .footlinks {
    flex-wrap: wrap;
    padding: 3%;
    gap: 3%;
    margin: 20px auto 0;
  }
  footer .footlinks li {
    width: 48.5%;
    margin-bottom: 2%;
  }
}
footer .footbox {
  background: #F7F9FA;
}
footer .footbox .w1280 {
  padding: 30px 2%;
}
footer .footbox .flexstyle {
  flex-direction: row-reverse;
  align-items: flex-start;
}
footer .footbox .footmenu {
  width: 48%;
}
@media (max-width: 1024px) {
  footer .footbox .footmenu {
    width: 100%;
  }
}
footer .footbox .footmenu .footbutton {
  margin-bottom: 40px;
}
@media (max-width: 1024px) {
  footer .footbox .footmenu .footbutton {
    margin-bottom: 30px;
  }
}
footer .footbox .footmenu .footbutton li {
  width: 44%;
}
@media (max-width: 1024px) {
  footer .footbox .footmenu .footbutton li {
    width: 46%;
  }
}
footer .footbox .footmenu .footbutton .orangebutton1 {
  display: block;
  padding: 6px;
  font-size: 1.25rem;
}
footer .footbox .footmenu .footbutton .bluebutton1 {
  display: block;
  padding: 6px;
  font-size: 1.25rem;
}
footer .footbox .footmenu .footnav .flexstyle {
  flex-direction: column;
  align-items: flex-start;

}
footer .footbox .footmenu .footnav li {
  margin-top: 10px;
}
footer .footbox .footmenu .footnav li:first-child {
  margin-top: 0;
}
footer .footbox .footmenu .footnav li a {
  color: #333;
  display: inline-flex;
  align-items: center;
}
footer .footbox .footmenu .footnav li a::before {
  content: "";
  display: block;
  padding-left: 12px;
  width: 20px;
  height: 13px;
  background: #2B96AA;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  transform: rotate(-90deg);
}
footer .footbox .footinfo {
  width: 40%;
}
@media (max-width: 1024px) {
  footer .footbox .footinfo {
    width: 100%;
    margin: 10px auto 0;
  }
}
footer .footbox .footinfo > p {
  margin-bottom: 20px;
  max-width: 460px;
}
@media (max-width: 1024px) {
  footer .footbox .footinfo > p {
    max-width: 90%;
    margin: 10px auto 20px;
  }
}
footer .footbox .footinfo .telbox {
  padding-left: 10px;
  margin-bottom: 20px;
  text-align: left;
}
@media (max-width: 1024px) {
  footer .footbox .footinfo .telbox {
    max-width: 90%;
    margin: 0 auto;
  }
}
footer .footbox .footinfo .telbox a {
  font-size: 2.25rem;
  padding: 5px 0 5px 75px;
  margin-bottom: 10px;
}
@media (max-width: 1024px) {
  footer .footbox .footinfo .telbox a {
    padding: 5px 0 5px 50px;
    margin-bottom: 5px;
  }
}
footer .footbox .footinfo .telbox .openclose {
  text-align: left;
}
@media (max-width: 1024px) {
  footer .footbox .footinfo .telbox .openclose {
    text-align: center;
    margin-bottom: 10px;
  }
}
footer .footbox .footinfo .telbox .openclose span {
  border: none;
  padding: 0 0 0 10px;
}
@media (max-width: 1024px) {
  footer .footbox .footinfo .telbox .openclose span {
    padding: 0;
  }
}
footer .footbox .footinfo address {
  display: block;
  font-style: normal;
}
@media (max-width: 1024px) {
  footer .footbox .footinfo address {
    display: block;
    text-align: center;
  }
  footer .footbox .footinfo address span {
    padding-left: 15px;
  }
}
footer small {
  display: block;
  padding: 5px;
  text-align: center;
  color: #fff;
  background: #004A67;
  letter-spacing: 2px;
}
@media (max-width: 1024px) {
  footer small {
    letter-spacing: inherit;
  }
}

.pagetop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 75px;
  height: 75px;
  background-color: #2B96AA;
  color: #fff;
  text-decoration: none;
  border-radius: 10px;
  box-shadow: 0 0 8px 3px rgba(80, 80, 80, 0.3);
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: all 0.9s;
}
@media (max-width: 1024px) {
  .pagetop {
    width: 64px;
    height: 64px;
    right: 15px;
    bottom: 90px;
  }
}
.pagetop.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.pagetop:hover {
  transform: translateY(-5px);
  transition: all 0.6s;
  box-shadow: 0 0 0 0 rgba(80, 80, 80, 0.3);
}
.pagetop .pagetop-arrow {
  display: block;
  width: 34px; /* 矢印のサイズ幅 */
  height: 34px; /* 矢印のサイズ高さ */
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform: rotate(-90deg);
  margin-bottom: 6px;
}
@media (max-width: 1024px) {
  .pagetop .pagetop-arrow {
    width: 32px;
    height: 32px;
  }
}
.pagetop .pagetop-text {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: 2.5px;
  transform: translateY(-10px);
}/*# sourceMappingURL=style.css.map */

/*======================================================================
  page
======================================================================*/
.page.w1280 {
  padding: 0 0 60px;
}
.page h1 {
  font-size: 3rem;
  font-weight: bold;
  color: #003a3a;
  text-shadow: 6px 6px 0 #fff100;
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  padding: 5px;
  z-index: 1;
}
.page h1:before {
  content: '';
  position: absolute;
  top: 55%;
  left: -5%;
  width: 110%; 
  height: 40%;
  background-color: #fff100;
  z-index: -1;
  clip-path: polygon(5% 20%, 100% 40%, 0% 80%, 0% 80%);
}
.page h2 {
  padding-left: 15px;
  border-left: 8px solid #004A67;
  color: #004A67;
  line-height: 1.4;
  margin: 30px 0 20px;
}
.page h3 {
  background: #004A67;
  padding: 5px 20px;
  display: inline-block;
  margin: 30px 0 15px;
  color: #fff;
}
.page h4 {
  color: #004A67;
  margin: 10px 0;
}
.page p {
  margin-bottom: 15px;
}
.page .wp-block-list {
  padding: 15px 20px;
  background: #FFF9F3;
  color: #004A67;
  margin-bottom: 15px;
}
.page .wp-block-list li {
  margin-top: 10px;
  padding-left: 20px;
  position: relative;
}
.page .wp-block-list li:first-child {
  margin-top: 0;
}
.page .wp-block-list li:before {
  content: '';
  width: 8px;
  height: 8px;
  border: 2px solid #004A67;
  border-radius: 30px;
  position: absolute;
  top: 7px;
  left: 0;
}
.page .companyinfolist {
  border-bottom: 1px solid #333;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.page .companyinfolist dt {
  width: 15%;
  color: #AAAAAA;
  font-weight: bold;
  padding: 20px 0 20px 10px;
  box-sizing: border-box;
  letter-spacing: 2px;
  border-top: 1px solid #333;
}
.page .companyinfolist dd {
  width: 85%;
  font-weight: bold;
  padding: 20px 0;
  box-sizing: border-box;
  letter-spacing: 2px;
  border-top: 1px solid #333;
}
@media (max-width: 1024px) {
  .pagemain {
    padding: 0 2%;
  }
  .page h1 {
    margin-top: 15px;
    margin-left: 10px;
    font-size: 2rem;
    line-height: 1.6;
  }
  .page h1:before {
    content: none;
  }
  .page .companyinfolist dt {
    width: 25%;
  }
  .page .companyinfolist dd {
    width: 75%;
  }
}

/*======================================================================
  case-format
======================================================================*/

.case-format .case_level_label {
  display: inline-block;
  padding: 5px 5px 5px 10px;
  color: #fff;
  background: #FF8A26;
  font-weight: bold;
  border-radius: 5px;
}
.case-format .case_level_label span {
  background: #F7F9FA;
  color: #FF8A26;
  padding: 0 10px;
  font-weight: bold;
  display: inline-block;
  border-radius: 5px;
  margin-left: 10px;
}
.case_h1 {
  font-size: 2.25rem;
  font-weight: bold;
  color: #004A67;
}
.case-format h2 {
  font-size: 1.75rem;
  background: #004A67;
  border-radius: 5px;
  color: #fff;
  padding: 5px 20px;
  margin-top: 20px;
}
.case-format .cf-situationlist {
  padding: 20px;
  background: #F7F9FA;
}
.case-format .cf-situationlist li {
  padding-left: 35px;
  margin-top: 10px;
  background: url("images/checkbox1.png") no-repeat left 1px;
  background-size: 30px;
  font-weight: bold;
}
.case-format .cf-situationlist li:first-child {
  margin-top: 0;
}
.case_howdo {
  margin: 20px 0;
  font-size: 2rem;
  padding: 30px 20px 30px 60px;
  font-weight: bold;
  color: #FF8A26;
  position: relative;
}
.case_howdo:before {
  content: '？';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 180px;
  opacity: 0.2;
}
.case-format .cf-list-items.is-ng {
  padding: 20px;
  background: #FFF9F3;
}
.case-format .cf-list-items.is-ng li {
  padding: 2px 0 2px 35px;
  margin-top: 10px;
  background: url("images/checkbox2.png") no-repeat left 0;
  background-size: 30px;
  font-weight: bold;
}
.case-format .cf-list-items.is-ng li:first-child {
  margin-top: 0;
}
.case-format .cf-list-items.is-up {
  padding: 20px;
  background: #F7F9FA;
}
.case-format .cf-list-items.is-up li {
  padding: 2px 0 2px 35px;
  margin-top: 10px;
  background: url("images/checkbox3.png") no-repeat left 0;
  background-size: 30px;
  font-weight: bold;
}
.case-format .cf-list-items.is-up li:first-child {
  margin-top: 0;
}
.cf-explanation {
  padding: 20px;
}
.member-only-box {
  background: #F7F9FA;
  border: 2px solid #004A67;
  padding: 40px 20px;
  text-align: center;
  border-radius: 10px;
  margin-top: 40px;
}

.member-only-box__title {
  color: #004A67;
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 15px;
}

.member-only-box__text {
  font-size: 1.1rem;
  margin-bottom: 12px;
}

.member-only-box__buttons {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
  align-items: stretch;
}

.member-only-box__button-col {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.member-only-box__button-note {
  font-size: 1rem;
  font-weight: bold;
  color: #004A67;
  margin-bottom: 10px;
  text-align: center;
}

.member-only-box__button-note--line {
  color: #FF8A26;
}

.member-only-box__button {
  padding: 15px 40px;
}

.member-only-box__button--line {
  display: inline-block;
  text-align: center;
  color: #ffffff;
  font-weight: bold;
  background: #06C755;
  border-radius: 200px;
  box-shadow: 0 4px 0 0 #049c43;
}

@media (max-width: 1024px) {
  .case-format .case_level_label {
    margin: 5px;
  }

  .case_h1 {
    font-size: 1.75rem;
    margin: 10px 5px;
  }

  .member-only-box__buttons {
    flex-direction: column;
    align-items: center;
  }

  .member-only-box__button-col {
    width: 100%;
    max-width: 320px;
  }

  .member-only-box__button {
    width: 100%;
    box-sizing: border-box;
  }
}

.archive-pagination {
  text-align: center;
  margin-top: 30px;
  padding-bottom: 60px;
}

.archive-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.archive-pagination .page-numbers {
  display: inline-block;
  min-width: 42px;
  padding: 10px 15px;
  background: #fff;
  color: #004A67;
  border-radius: 6px;
  font-weight: bold;
  text-decoration: none;
}

.archive-pagination .page-numbers.current {
  background: #004A67;
  color: #fff;
}

/*======================================================================
  カテゴリ testimonial
======================================================================*/

.testimonial-archive__hero{
  background: #004A67;
  color: #fff;
  padding: 50px 0;
}
.testimonial-archive__label{
  font-size: 1rem;
  letter-spacing: 0.25em;
  opacity: .9;
  margin-bottom: 10px;
}
.testimonial-archive__title{
  font-size: 2.25rem;
  font-weight: bold;
  margin-bottom: 10px;
}
.testimonial-archive__lead{
  font-size: 1.1rem;
  opacity: .95;
}

.testimonial-archive__body{
  padding: 30px 0 60px;
}

.testimonial-archive__grid{
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.testimonial-archive__item{
  width: calc(50% - 15px);
}

.testimonial-archive__card{
  display: block;
  border: 3px solid #2B96AA;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  color: #333;
  transition: transform .3s ease;
}
.testimonial-archive__card:hover{
  transform: translateY(-4px);
}

.testimonial-archive__thumb{
  aspect-ratio: 16 / 10;
  background: #F7F9FA;
}
.testimonial-archive__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.testimonial-archive__noimage{
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #004A67;
  font-weight: bold;
  letter-spacing: 2px;
}

.testimonial-archive__content{
  padding: 12px;
  background: #F7F9FA;
}

.testimonial-archive__name{
  padding: 8px 10px;
  background: #2B96AA;
  color: #fff;
  font-weight: bold;
  border-radius: 6px;
  margin-bottom: 10px;
}

.testimonial-archive__designation{
  font-weight: bold;
  margin-bottom: 8px;
  color: #004A67;
}

.testimonial-archive__oneliner{
  background: #FFFB95;
  padding: 10px;
  color: #333;
  font-weight: bold;
  margin-bottom: 12px;
  border-radius: 6px;
}

.testimonial-archive__excerpt{
  color: #333;
  margin-bottom: 12px;
}

.testimonial-archive__more{
  display: block;
  text-align: center;
  text-decoration: underline;
  font-weight: bold;
  color: #2B96AA;
}

.testimonial-archive__pagination{
  margin-top: 30px;
}
.testimonial-archive__pagination .nav-links{
  display: flex;
  justify-content: center;
  gap: 8px;
}
.testimonial-archive__pagination a,
.testimonial-archive__pagination span{
  display: inline-block;
  width: 42px;
  height: 42px;
  line-height: 42px;
  text-align: center;
  background: #fff;
  color: #004A67;
  border-radius: 6px;
  font-weight: bold;
}
.testimonial-archive__pagination .current{
  background: #004A67;
  color: #fff;
}

@media (max-width: 1024px){
  .testimonial-archive__grid{
    display: block;
    padding: 0;
    background: transparent;
  }

  .testimonial-archive__item{
    width: 100%;
    margin-bottom: 18px;
  }

  .testimonial-archive__hero{
    padding: 35px 0;
  }

  .testimonial-archive__title{
    font-size: 1.75rem;
  }

}


/*======================================================================
  カテゴリ case-format
======================================================================*/
.case-archive-container {
  background: #F7F9FA;
  padding: 0;
}
.case-archive-container h1 {
  font-size: 2.25rem;
  font-weight: bold;
}
.case-grid.inner {
  padding: 30px;
}
.case-page-header {
  background: #004A67;
  color: #fff;
  padding: 40px 20px;
  text-align: center;
}
.case-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}
.case-card {
    background: #fff;
    width: calc(33.333% - 20px);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: transform 0.3s ease;
}
.case-card:hover {
    transform: translateY(-5px);
}
@media (max-width: 1024px) { .case-card { width: 100%; } }
.case-card-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
}
.case-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.case-card-body {
    padding: 20px;
}
.case-card-title {
    font-size: 1.25rem;
    font-weight: bold;
    margin-bottom: 10px;
    line-height: 1.4;
}
.case-card-excerpt {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 15px;
}

.case-badge {
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: bold;
    color: #fff;
}
.badge-beginner { background: #28a745; }     /* 初級：緑 */
.badge-intermediate { background: #ffc107; color: #333; } /* 中級：黄 */
.badge-advanced { background: #dc3545; }     /* 上級：赤 */
.case-btn {
    display: inline-block;
    color: #007bff;
    font-weight: bold;
    font-size: 14px;
}
.case-nav {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 30px;
}

.case-nav-btn {
    display: inline-block;
    padding: 10px 50px;
    border-radius: 50px;
    font-size: 1.25rem;
    font-weight: bold;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    color: #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.btn-beginner {
    background-color: #28a745; /* 緑 */
}
.btn-beginner:hover {
    background-color: #218838;
    transform: translateY(-2px);
}

.btn-intermediate {
    background-color: #ffc107; /* 黄 */
    color: #333;
}
.btn-intermediate:hover {
    background-color: #e0a800;
    transform: translateY(-2px);
}

.btn-advanced {
    background-color: #dc3545; /* 赤 */
}
.btn-advanced:hover {
    background-color: #c82333;
    transform: translateY(-2px);
}

@media (max-width: 1024px) {
    .case-nav {
        gap: 10px;
    }
    .case-nav-btn {
        width: 100%;
        text-align: center;
        padding: 12px;
    }
}

/* ==============================================
カテゴリ全国一覧 certified_clinic
============================================== */
.cc-pref-group {
  margin-bottom: 40px;
  padding-bottom: 30px;
  border-bottom: 1px dashed #dce6eb;
}
.cc-pref-group:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.cc-pref-name {
  font-size: 1.1rem;
  color: var(--cc-main);
  background: var(--cc-bg-blue);
  display: inline-block;
  padding: 5px 20px;
  border-radius: 4px;
  margin-bottom: 20px;
  font-weight: bold;
}
.cc-accordion-clinic-list a {
  color: #FF8A26;
  font-weight: bold;
  display: inline-flex;
  align-items: center;
}
.cc-accordion-clinic-list a:before {
  content: '';
  display: block;
  padding-left: 12px;
  width: 20px;
  height: 13px;
  background: #FF8A26;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  transform: rotate(-90deg);
}

/* ---------------------------------
   地域別一覧ページ
   --------------------------------- */

.cc-archive-container {
  background-color: var(--cc-bg-blue);
  padding: 0 0 60px;
}
.cc-archive-header {
    background-color: var(--cc-main);
    color: var(--cc-white);
    padding: 40px 0;
    text-align: center;
    margin-bottom: 20px;
}
.cc-archive-label {
    display: block;
    font-size: 1.25rem;
    letter-spacing: 0.2em;
    margin-bottom: 10px;
    opacity: 0.8;
}

.cc-archive-title {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 20px;
}

.cc-breadcrumbs {
    font-size: 0.85rem;
    opacity: 0.7;
}

.cc-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.cc-breadcrumbs a:hover {
    text-decoration: underline;
}

/* カードグリッド */
.cc-card-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
}

.cc-item-card {
    width: calc(33.333% - 20px); /* 3カラム */
    background: var(--cc-white);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,74,103,0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cc-item-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,74,103,0.12);
}

.cc-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
    height: 100%;
}

/* ロゴエリア */
.cc-card-logo {
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 25px;
    border-bottom: 1px solid #f0f4f6;
}

.cc-card-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.cc-no-logo-placeholder {
    width: 100%;
    height: 100%;
    background: var(--cc-bg-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    text-align: center;
    color: var(--cc-main);
    font-weight: bold;
    font-size: 0.9rem;
}

/* カード本文 */
.cc-card-body {
    padding: 25px;
}

.cc-card-tag {
    display: inline-block;
    background: var(--cc-bg-blue);
    color: var(--cc-accent);
    font-size: 0.75rem;
    font-weight: bold;
    padding: 2px 10px;
    border-radius: 4px;
    margin-bottom: 12px;
}

.cc-card-name {
    font-size: 1.25rem;
    color: var(--cc-main);
    font-weight: bold;
    margin-bottom: 10px;
    line-height: 1.4;
}

.cc-card-company {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 8px;
}

.cc-card-address {
    font-size: 0.85rem;
    color: #999;
    line-height: 1.5;
    margin-bottom: 20px;
    display: flex;
    align-items: flex-start;
    gap: 4px;
}

.cc-card-address .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
    margin-top: 2px;
}

.cc-card-footer {
    border-top: 1px solid #f0f4f6;
    padding-top: 15px;
    text-align: right;
}

.cc-card-btn {
    font-size: 0.9rem;
    font-weight: bold;
    color: var(--cc-link);
}

.cc-card-btn::after {
    content: ' ＞';
    font-size: 0.8em;
}

/* ページネーション */
.cc-pagination {
    margin-top: 60px;
    text-align: center;
}

.cc-pagination .nav-links {
    display: flex;
    justify-content: center;
    gap: 8px;
}

.cc-pagination a, .cc-pagination span {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-decoration: none;
    background: #fff;
    color: var(--cc-main);
    border-radius: 4px;
    font-weight: bold;
}

.cc-pagination .current {
    background: var(--cc-main);
    color: #fff;
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .cc-item-card { width: 100%; }
    .cc-archive-title { font-size: 1.6rem; }
    .cc-card-logo { padding: 10px; }
    .cc-card-body { padding: 10px; }
}

/* ==============================================
certified_clinic
============================================== */
/* カラー変数設定 */
:root {
  --cc-main: #004A67;
  --cc-accent: #027988;
  --cc-link: #2B96AA;
  --cc-orange: #FF8A26;
  --cc-highlight: #FFFB95;
  --cc-bg-blue: #F7F9FA;
  --cc-bg-orange: #FFF9F3;
  --cc-white: #ffffff;
}

.cc-single-container {
    background-color: var(--cc-white);
    color: #333;
    line-height: 1.8;
}

.cc-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 共通タイトル */
.cc-section {
  margin-bottom: 40px;
}
.cc-section-title {
    font-size: 1.75rem;
    text-align: center;
    color: var(--cc-main);
    margin-bottom: 20px;
    font-weight: bold;
    position: relative;
    padding-bottom: 15px;
}

.cc-section-title::after {
    content: '';
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 2px;
    background: var(--cc-accent);
}

.cc-hero {
    background-color: var(--cc-bg-blue);
    padding: 60px 0;
    text-align: center;
    margin-bottom: 0;
}

.cc-pref-tag {
    background: var(--cc-accent);
    color: var(--cc-white);
    padding: 3px 20px;
    border-radius: 50px;
    font-size: 0.9rem;
    margin-bottom: 15px;
    display: inline-block;
}

.cc-title {
    color: var(--cc-main);
    font-size: 2.25rem;
    font-weight: bold;
}

.cc-logo-area {
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
}

.cc-logo-area img {
    max-width: 200px;
    max-height: 100px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.cc-logo-area + .cc-title {
    margin-top: 10px;
}

/* 2. 推薦文 */
.cc-recommend-box {
  background: var(--cc-bg-orange);
  border: 2px solid var(--cc-orange);
  padding: 35px;
  border-radius: 12px;
  position: relative;
  box-sizing: border-box;
}

.cc-recommend-box::before {
  content: 'ASSOCIATION RECOMMEND';
  position: absolute;
  top: -14px;
  left: 30px;
  background: var(--cc-orange);
  color: var(--cc-white);
  padding: 2px 15px;
  font-weight: bold;
  font-size: 0.75rem;
  border-radius: 4px;
}

.cc-recommend-inner {
  display: flex;
  gap: 30px;
  align-items: flex-start;
}

.cc-recommend-certificate {
  flex: 0 0 32%;
}

.cc-recommend-main {
  flex: 1 1 auto;
}

.cc-certificate-image {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #eef2f4;
  box-shadow: 0 4px 15px rgba(0, 74, 103, 0.05);
}

.cc-certificate-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.cc-recommend-text {
  font-size: 1.05rem;
  line-height: 1.95;
  color: #333;
  margin-bottom: 0;
}

.cc-recommend-text-outer {
  overflow: hidden;
  transition: max-height 0.8s ease;
}

.cc-recommend-accordion.is-collapsible:not(.is-open) .cc-recommend-text-inner {
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cc-recommend-text-wrap {
  position: relative;
}

.cc-recommend-text-short-wrap {
  display: block;
}

.cc-recommend-text-full-wrap {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    max-height 0.8s ease,
    opacity 0.5s ease;
}

.cc-recommend-text--full {
  padding-top: 14px;
  margin-top: 14px;
  border-top: 1px dashed rgba(0, 74, 103, 0.2);
}

.cc-recommend-accordion.is-open .cc-recommend-text-full-wrap {
  opacity: 1;
}

.cc-recommend-toggle {
  display: inline-block;
  margin-top: 20px;
  padding: 10px 28px;
  border: none;
  border-radius: 50px;
  background: var(--cc-main);
  color: #fff;
  font-weight: bold;
  font-size: 0.95rem;
  cursor: pointer;
  transition:
    background 0.3s ease,
    transform 0.3s ease,
    opacity 0.3s ease,
    box-shadow 0.3s ease;
  box-shadow: 0 4px 10px rgba(0, 74, 103, 0.15);
}

.cc-recommend-toggle:hover {
  opacity: 0.9;
  transform: translateY(-2px);
}

@media (max-width: 1024px) {
  .cc-recommend-box {
    padding: 20px;
  }

  .cc-recommend-box::before {
    left: 20px;
    font-size: 0.7rem;
  }

  .cc-recommend-inner {
    flex-direction: column;
    gap: 20px;
  }

  .cc-recommend-certificate,
  .cc-recommend-main {
    width: 100%;
    flex: none;
  }

  .cc-recommend-text {
    font-size: 1rem;
    line-height: 1.85;
  }

  .cc-recommend-toggle {
    width: 100%;
    text-align: center;
    padding: 12px;
  }
}

/* 4. 院長紹介（PC横並び調整） */
.cc-director-card {
    display: flex;
    gap: 5%;
    align-items: center; /* 中央揃えで自然に */
    background: var(--cc-white);
    border: 1px solid #eef2f4;
    padding: 40px;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0,74,103,0.05);
}

.cc-director-image {
    flex: 0 0 32%; /* 画像が大きすぎないように3割程度に制限 */
}

.cc-director-image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.cc-director-body {
    flex: 1;
}

.cc-director-name {
    font-size: 1.6rem;
    color: var(--cc-main);
    margin-bottom: 15px;
    border-bottom: 2px solid var(--cc-bg-blue);
    padding-bottom: 10px;
}

.cc-qualifications-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none !important;
    padding: 0 !important;
    margin-bottom: 20px !important;
}

.cc-qualifications-list li {
    background: var(--cc-bg-blue);
    color: var(--cc-main);
    font-size: 0.85rem;
    padding: 4px 12px;
    border-radius: 4px;
    border: 1px solid #dce6eb;
}

/* 5. ギャラリー（3カラムflex） */
.cc-gallery-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    list-style: none !important;
    padding: 0 !important;
}

.cc-gallery-item {
    width: calc(33.333% - 14px); /* PC 3カラム */
}

.cc-gallery-item img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 8px;
    transition: transform 0.3s ease;
}

.cc-gallery-item img:hover {
    transform: scale(1.02);
}

/* 6. お客様の声 */
.cc-voices-box {
    background: var(--cc-bg-blue);
    padding: 35px;
    border-radius: 12px;
    border-left: 6px solid var(--cc-accent);
}

/* 7. 店舗情報・診療時間（横並び） */
.cc-flex-row {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.cc-info-col { flex: 1.2; }
.cc-hours-col { 
    flex: 0.8; 
    background: #fcfdfe;
    padding: 30px;
    border-radius: 12px;
    border: 1px solid #eef2f4;
}

.cc-info-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 30px;
}

.cc-info-table th {
    width: 100px;
    text-align: left;
    padding: 15px 10px;
    color: var(--cc-main);
    border-bottom: 1px solid #eef2f4;
}

.cc-info-table td {
    padding: 15px 0;
    border-bottom: 1px solid #eef2f4;
}

.cc-info-table td a {
    color: var(--cc-link);
    text-decoration: none;
    font-weight: bold;
}

.cc-google-map iframe {
    width: 100% !important;
    height: 300px !important;
    border-radius: 10px;
}

/* 診療時間（縦リスト） */
.cc-hours-v-title {
    font-size: 1.25rem;
    color: var(--cc-main);
    text-align: center;
    margin-bottom: 20px;
}

.cc-hours-v-item {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid #eef2f4;
}

.cc-hours-v-item .day {
    font-weight: bold;
    color: #555;
}

.cc-hours-v-item .time {
    text-align: right;
    font-weight: 500;
}

.is-closed {
    color: var(--cc-orange);
    font-weight: bold;
}

/* SNSボタン */
.cc-sns-links {
    display: flex;
    gap: 8px;
}

.cc-sns-btn {
    padding: 8px 15px;
    border-radius: 5px;
    color: var(--cc-white);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: bold;
}

.cc-info-table td a.is-line { background: #06C755; color: #fff}
.cc-info-table td a.is-insta { background: #E1306C; color: #fff}
.cc-info-table td a.is-fb { background: #1877F2; color: #fff}

/* CTAエリア */
.cc-cta {
    background: var(--cc-bg-blue);
    padding: 40px;
    border-radius: 15px;
    text-align: center;
    margin: 60px 0;
}

.cc-cta-msg {
    font-weight: bold;
    color: var(--cc-main);
    margin-bottom: 20px;
    font-size: 1.1rem;
}

.cc-cta-btns {
    display: flex;
    gap: 20px;
    justify-content: center;
}

.cc-cta-btn {
    flex: 1;
    max-width: 350px;
    padding: 15px 20px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--cc-white) !important;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.cc-cta-btn span {
    font-size: 0.85rem;
    opacity: 0.9;
}

.cc-cta-btn b {
    font-size: 1.4rem;
    display: block;
    margin-top: 2px;
}

/* 電話ボタン：メインカラー */
.cc-cta-btn.is-phone {
    background: var(--cc-orange);
}

/* LINEボタン：オレンジ */
.cc-cta-btn.is-line {
    background: #00B800;
}

.cc-cta-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.15);
    opacity: 0.9;
}

/* スマホレスポンシブ */
@media (max-width: 1024px) {
    .cc-director-card, .cc-flex-row {
        flex-direction: column;
    }
    .cc-director-card {
      padding: 10px;
    }
    .cc-director-image {
        width: 100%;
        margin-bottom: 25px;
    }
    .cc-gallery-item {
        width: calc(50% - 10px);
    }
    .cc-info-col, .cc-hours-col {
        width: 100%;
    }
    .cc-cta {
        padding: 30px 20px;
    }
    .cc-cta-btns {
        flex-direction: column;
        gap: 15px;
    }
    .cc-cta-btn {
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }
    .cc-cta-btn span {
      font-size: 1rem;
    }
    .cc-cta-btn b {
      font-size: 2.25rem;
      letter-spacing: 2px;
    }
    .cc-cta-btn.is-group b {
      font-size: 1.75rem;
    }
    .cc-hours-col {
      padding: 15px;
      box-sizing: border-box;
    }
}

/* グループ院ボタンのデザイン（CTAエリア） */
.cc-cta-btn.is-group {
    background-color: var(--cc-main); /* 協会のメインカラー */
}

/* 3つ並んだときの調整（PC） */
@media (min-width: 1025px) {
    .cc-cta-btns {
        display: flex;
        justify-content: center;
        gap: 15px;
    }
    .cc-cta-btn {
        flex: 1;
        max-width: 300px; /* 3つ並ぶので少し幅を狭める */
    }
}

/* ==============================================
testimonial
============================================== */
.testimonial-titlebox {
  padding: 10px 20px;
  background: #004A67;
  color: #fff;
}

.testimonial-titlebox .testimonial-meta {
  font-size: 1.25rem;
  font-weight: bold;
}

.testimonial-titlebox h1 {
  font-size: 2rem;
  font-weight: bold;
}

.onelinerbox {
  padding: 20px;
  background: #F7F9FA;
  margin-bottom: 20px;
}

.onelinerbox .imgbox {
  width: 40%;
}

.onelinerbox .testimonial-oneliner {
  width: 58%;
  font-size: 1.25rem;
  background: #FFFB95;
  font-weight: bold;
  padding: 20px 10px;
  box-sizing: border-box;
}

.singlemain--testimonial p {
  margin-bottom: 10px;
}

.singlemain--testimonial h2 {
  font-size: 1.75rem;
  color: #004A67;
  border-left: 4px solid #004A67;
  padding-left: 15px;
  margin: 30px 0 10px;
}

.singlemain ul {
  padding: 15px;
  background: #F7F9FA;
  margin: 10px 0;
}

.singlemain ul li {
  margin-bottom: 5px;
  padding: 5px 0 5px 45px;
  background: url(images/checkbox1.png) no-repeat left 5px;
  background-size: 35px;
}

@media (max-width: 1024px) {
  .onelinerbox .imgbox {
    width: 100%;
  }
  .onelinerbox .testimonial-oneliner {
    width: 100%;
    font-size: 1rem;
    padding: 5px 10px;
    margin: 0;
  }
}

/* ==============================================
404
============================================== */

.cc-error-container {
    padding: 100px 0;
    background-color: var(--cc-bg-blue);
    text-align: center;
}

.cc-error-content {
    max-width: 600px;
    margin: 0 auto;
    background: #fff;
    padding: 60px 40px;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.cc-error-icon {
    margin-bottom: 20px;
}

.cc-error-icon .dashicons {
    font-size: 80px;
    width: 80px;
    height: 80px;
    color: var(--cc-accent);
    opacity: 0.3;
}

.cc-error-title {
    font-size: 2.5rem;
    color: var(--cc-main);
    font-weight: bold;
    margin-bottom: 20px;
}

.cc-error-message {
    font-size: 1rem;
    color: #666;
    line-height: 1.8;
    margin-bottom: 40px;
}

/* 検索フォームの調整 */
.cc-error-search {
    margin-bottom: 40px;
    padding: 30px;
    background: var(--cc-bg-blue);
    border-radius: 10px;
}

.cc-error-search p {
    font-weight: bold;
    margin-bottom: 15px;
    color: var(--cc-main);
}

/* ボタンエリア */
.cc-error-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
}

.cc-btn-home, .cc-btn-sub {
    display: inline-block;
    padding: 15px 30px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: bold;
    transition: all 0.3s ease;
}

.cc-btn-home {
    background-color: var(--cc-main);
    color: #fff !important;
}

.cc-btn-sub {
    background-color: var(--cc-white);
    color: var(--cc-main) !important;
    border: 2px solid var(--cc-main);
}

.cc-btn-home:hover, .cc-btn-sub:hover {
    opacity: 0.8;
    transform: translateY(-2px);
}

@media (max-width: 600px) {
    .cc-error-container {
        padding: 60px 0;
    }
    .cc-error-content {
        padding: 40px 20px;
    }
    .cc-error-actions {
        flex-direction: column;
    }
    .cc-error-title {
        font-size: 1.8rem;
    }
}

/* ==============================================
   グループ院一覧用 追加スタイル
   ============================================== */

.cc-group-block-list {
    display: flex;
    flex-direction: column;
    gap: 80px; /* ブロックごとの間隔を広く */
}

.cc-group-item {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0,74,103,0.1);
    overflow: hidden;
    padding: 40px;
    border: 1px solid #eef2f4;
}

.cc-group-item__head {
    text-align: center;
    margin-bottom: 30px;
}

.cc-group-item__name {
    font-size: 2.25rem;
    color: var(--cc-main);
    margin: 10px 0;
}

.cc-group-item__address {
    font-weight: bold;
    color: #666;
}

/* 外観画像 */
.cc-group-item__exterior {
    margin-bottom: 30px;
    border-radius: 12px;
    overflow: hidden;
}

/* マップレスポンシブ */
.map-responsive {
    position: relative;
    padding-bottom: 40%; /* 縦横比 */
    height: 0;
    overflow: hidden;
    margin-bottom: 30px;
}
.map-responsive iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    border-radius: 12px;
}

/* 営業時間グリッド */
.cc-item-sub-title {
    font-size: 1.25rem;
    color: var(--cc-main);
    border-left: 5px solid var(--cc-accent);
    padding-left: 15px;
    margin-bottom: 20px;
}

.cc-hours-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 30px;
    background: var(--cc-bg-blue);
    padding: 20px;
    border-radius: 12px;
}

.cc-hours-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    border-right: 1px solid #ddd;
}
.cc-hours-row:nth-child(4),
.cc-hours-row:nth-child(8) { border-right: none; }

.cc-hours-row .day { font-weight: bold; margin-bottom: 5px; }
.cc-hours-row .time { font-size: 0.85rem; text-align: center; }

/* ボタン類 */
.cc-group-item__actions {
    display: flex;
    gap: 15px;
    margin-bottom: 40px;
}

.cc-btn-action {
    flex: 1;
    text-align: center;
    padding: 15px;
    border-radius: 50px;
    color: #fff !important;
    font-weight: bold;
    font-size: 1.1rem;
    transition: 0.3s;
}

.cc-btn-action.is-tel { background: var(--cc-accent); }
.cc-btn-action.is-line { background: #06C755; }
.cc-btn-action.is-insta { background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%); }

/* 横スクロールギャラリー */
.cc-scroll-wrapper {
    display: flex;
    gap: 15px;
    overflow-x: auto;
    padding-bottom: 15px;
    -webkit-overflow-scrolling: touch;
}

.cc-scroll-item {
    flex: 0 0 300px;
}
.cc-scroll-item img {
    border-radius: 10px;
    aspect-ratio: 3/2;
    object-fit: cover;
}

/* フッター */
.cc-group-item__footer {
    margin-top: 30px;
    text-align: center;
}
.cc-link-detail {
    font-size: 1.2rem;
    font-weight: bold;
    color: var(--cc-link);
}

/* スマホ対応 */
@media (max-width: 1024px) {
    .cc-group-item { padding: 20px; }
    .cc-group-item__name { font-size: 1.5rem; }
    .cc-hours-grid { grid-template-columns: repeat(2, 1fr); }
    .cc-hours-row:nth-child(even) { border-right: none; }
    .cc-group-item__actions { flex-direction: column; }
    .map-responsive { padding-bottom: 75%; }
    .cc-scroll-item { flex: 0 0 70vw; }
}

/* ==============================================
   アクセス情報セクション (.cc-section.cc-access-info)
   ============================================== */

.cc-access-info {
    margin: 40px 0;
    border: 1px solid #eef2f4;
    border-radius: 15px;
    background: #fff;
    overflow: hidden;
}

.cc-access-info__inner {
    display: flex;
    flex-wrap: wrap;
}

/* 左側：画像とマップ */
.cc-access-info__visual {
    flex: 1.2; /* 少し広めに */
    min-width: 400px;
    display: flex;
    flex-direction: column;
}

.cc-access-visual-item {
    width: 100%;
}

.cc-exterior img {
    width: 100%;
    object-fit: cover;
    display: block;
}

.cc-map .map-responsive {
    margin-bottom: 0; /* セクション内なので余白不要 */
}

/* 右側：診療時間 */
.cc-access-info__content {
    flex: 0.8;
    background: #fcfdfe;
    padding: 40px;
    border-left: 1px solid #eef2f4;
}

.cc-hours-title {
    font-size: 1.5rem;
    color: var(--cc-main);
    margin-bottom: 25px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--cc-main);
    display: flex;
    align-items: center;
    gap: 8px;
}

.cc-hours-table {
    width: 100%;
    border-collapse: collapse;
}

.cc-hours-table th {
    text-align: left;
    font-size: 0.9rem;
    color: #999;
    padding-bottom: 10px;
}

.cc-hours-table td {
    padding: 12px 0;
    border-bottom: 1px solid #f0f4f6;
    vertical-align: top;
}

.cc-hours-table tr:last-child td {
    border-bottom: none;
}

.cc-hours-table .day-label {
    font-weight: bold;
    width: 100px;
}

.cc-hours-table .day-label.is-holiday {
    color: #e6683c;
}

.cc-hours-table .time-value {
    font-weight: 500;
}

.cc-hours-table .is-closed {
    color: var(--cc-orange);
    font-weight: bold;
}

/* スマホレスポンシブ */
@media (max-width: 1024px) {
    .cc-access-info__inner {
        flex-direction: column;
    }
    
    .cc-access-info__visual {
        min-width: 100%;
    }
    
    .cc-access-info__content {
        width: 100%;
        border-left: none;
        border-top: 1px solid #eef2f4;
        padding: 20px;
    }
}

/*======================================================================
  quiz-format (問題集)
======================================================================*/
.quiz-format .qz-section {
  margin-bottom: 40px;
}
.quiz-format h2 {
  font-size: 1.75rem;
  background: #004A67;
  border-radius: 5px;
  color: #fff;
  padding: 5px 20px;
  margin-top: 20px;
  border-radius: 0;
}

/* 問題文ボックス */
.qz-question-box {
  padding: 25px;
  background: #F7F9FA;
  border-radius: 8px;
  font-size: 1.1rem;
  font-weight: bold;
  line-height: 1.8;
  border: 2px solid #004A67;
  border-radius: 0;
}

/* 問いかけ（？マーク背景） */
.qz-prompt {
  margin: 40px 0;
  font-size: 2rem;
  padding: 30px 20px 30px 60px;
  font-weight: bold;
  color: #FF8A26;
  position: relative;
}
.qz-prompt:before {
  content: '？';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 180px;
  opacity: 0.15;
}

/* 回答択一ボタンエリア */
.qz-choices-section {
  text-align: center;
  margin-bottom: 50px;
}
.qz-instruction {
  font-weight: bold;
  color: #2B96AA;
  margin-bottom: 20px;
  font-size: 1.25rem;
}
.qz-choices-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
  max-width: 800px;
  margin: 0 auto;
}
.qz-choice-btn {
  display: flex;
  align-items: center;
  width: 100%;
  background: #fff;
  border: 3px solid #2B96AA;
  border-radius: 50px;
  padding: 15px 30px;
  font-size: 1.25rem;
  font-weight: bold;
  color: #2B96AA;
  cursor: pointer;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
  text-align: left;
}
.qz-choice-btn:hover {
  background: #2B96AA;
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}
.qz-choice-btn.is-selected {
  background: #004A67;
  border-color: #004A67;
  color: #fff;
  box-shadow: none;
  transform: translateY(0);
}
.qz-choice-icon {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 35px;
  height: 35px;
  background: #2B96AA;
  color: #fff;
  border-radius: 50%;
  margin-right: 20px;
  font-size: 1.2rem;
  flex-shrink: 0;
  font-family: Arial, sans-serif;
}
.qz-choice-btn:hover .qz-choice-icon,
.qz-choice-btn.is-selected .qz-choice-icon {
  background: #fff;
  color: #2B96AA;
}

/* 解答と解説アコーディオンエリア */
.qz-answer-wrap {
  margin-bottom: 50px;
  animation: slideDownFade 0.5s ease-out forwards;
}
@keyframes slideDownFade {
  0% { opacity: 0; transform: translateY(-10px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* 正解発表ボックス */
.qz-answer-correct-box {
  background: #FFF9F3;
  border: 3px solid #FF8A26;
  border-radius: 12px;
  padding: 30px;
  margin-bottom: 30px;
}
.qz-answer-title {
  font-size: 1.75rem;
  color: #FF8A26;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
  border-bottom: 2px dashed #FF8A26;
  padding-bottom: 10px;
}
.qz-correct-list {
  font-size: 1.5rem;
  font-weight: bold;
  color: #333;
  list-style: none; /* デフォルトのリスト丸を消す */
  padding-left: 0; /* デフォルトのパディングを消す */
}
.qz-correct-list li {
  margin-bottom: 15px; /* 少し余白を広げる */
  position: relative;
  padding-left: 60px; /* 左側に大きなアイコン用の余白を設ける */
  line-height: 1.4;
  display: flex; /* 複数行になった場合、テキストを上揃えにするため */
  align-items: center; /* 擬似要素とテキストの高さを合わせる（1行の場合） */
  margin-top: 35px;
}

/* 擬似要素で◎を作成 */
.qz-correct-list li::before,
.qz-correct-list li::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border-style: solid;
  border-color: #FF8A26; /* テーマカラー */
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

/* 外側の丸（::before） */
.qz-correct-list li::before {
  width: 44px; /* 外側の丸のサイズ */
  height: 44px;
  border-width: 4px; /* 線の太さ */
}

/* 内側の丸（::after） */
.qz-correct-list li::after {
  width: 20px; /* 内側の丸のサイズ */
  height: 20px;
  border-width: 4px; /* 線の太さ */
  left: 12px; /* 外側の丸と中心を合わせるための調整 ( (外幅44-内幅20)/2 ) */
}

/* 答え解説ボックス */
.qz-explanation-box {
  background: #F7F9FA;
  padding: 30px;
  border-radius: 12px;
  border-left: 8px solid #004A67;
}
.qz-explanation-title {
  font-size: 1.5rem;
  color: #004A67;
  font-weight: bold;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.qz-explanation-title::before {
  content: "💡";
  font-size: 1.8rem;
}
.qz-explanation-content {
  font-size: 1.1rem;
  line-height: 1.8;
}

/* スマホ用レスポンシブ */
@media (max-width: 1024px) {
  .qz-choice-btn {
    font-size: 1rem;
    padding: 12px 20px;
  }
  .qz-prompt {
    font-size: 1.5rem;
    padding: 20px 10px 20px 40px;
  }
  .qz-prompt:before {
    font-size: 100px;
  }
  .qz-answer-title {
    font-size: 1.5rem;
  }
  .qz-correct-list {
    font-size: 1.25rem;
  }
}

/*======================================================================
  カテゴリ archive-quiz (問題集一覧)
======================================================================*/
.qz-archive-container {
  background: #F7F9FA;
  padding: 0 0 60px 0;
}
.qz-archive-container h1 {
  font-size: 2.25rem;
  font-weight: bold;
  margin-bottom: 10px;
}
.qz-grid.inner, .qz-pagination.inner {
  padding: 40px 20px;
  max-width: 1024px;
  margin: 0 auto;
}
.qz-page-header {
  background: #004A67;
  color: #fff;
  padding: 40px 20px;
  text-align: center;
}
.qz-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}
.qz-card {
  background: #fff;
  width: calc(33.333% - 20px);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transition: transform 0.3s ease;
}
.qz-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}
@media (max-width: 1024px) { 
  .qz-card { width: 100%; } 
}
.qz-card-link {
  text-decoration: none;
  color: inherit;
  display: block;
  height: 100%;
}
.qz-card-body {
  padding: 25px 20px;
}
.qz-badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: bold;
  color: #fff;
  background: #FF8A26;
  margin-bottom: 15px;
}
.qz-card-title {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 15px;
  line-height: 1.4;
  color: #004A67;
}
.qz-card-excerpt {
  font-size: 0.95rem;
  color: #333;
  margin-bottom: 20px;
  line-height: 1.6;
  background: #FFF9F3;
  padding: 15px;
  border-radius: 6px;
}
.qz-btn {
  display: inline-block;
  color: #2B96AA;
  font-weight: bold;
  font-size: 14px;
}
.qz-btn::after {
  content: " ＞";
  font-size: 0.9em;
}

/* ページネーション */
.qz-pagination {
  text-align: center;
  margin-top: 20px;
}
.qz-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 10px;
}
.qz-pagination .page-numbers {
  display: inline-block;
  padding: 10px 15px;
  background: #fff;
  color: #004A67;
  border-radius: 5px;
  font-weight: bold;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
  transition: all 0.3s;
}
.qz-pagination .page-numbers:hover {
  background: #F7F9FA;
}
.qz-pagination .page-numbers.current {
  background: #004A67;
  color: #fff;
}

/* =========================================================
   4つのサポート用パーツ
========================================================= */
.support_services_grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    align-items: stretch; /* カードの高さを揃える */
}

.support_service_card {
    width: calc(50% - 15px); /* PC時は2列 */
    background: #fff;
    border: 2px solid #004A67; /* テーマカラーの紺色 */
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.support_service_card .service_img {
    width: 100%;
    background: #F7F9FA;
}

.support_service_card .service_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.support_service_card .service_content {
    padding: 25px;
    display: flex;
    flex-direction: column;
    flex: 1; /* 余白を埋めるように広げる */
}

.support_service_card h4 {
    font-size: 1.5rem;
    color: #004A67;
    margin-bottom: 10px;
    text-align: center;
}

.support_service_card p {
    font-size: 1rem;
    line-height: 1.8;
    margin-bottom: 20px;
    flex: 1; /* テキスト部分を伸ばし、ボタンを常に最下部に固定する */
}

.support_service_card .service_btn {
    text-align: center;
}

.support_service_card .service_btn a {
    display: inline-block;
    padding: 10px 40px;
    background: #2B96AA; /* テーマカラーの水色 */
    color: #fff;
    font-weight: bold;
    border-radius: 50px;
    transition: all 0.3s ease;
}

.support_service_card .service_btn a::after {
    content: " ＞";
    font-size: 0.9em;
}

.support_service_card .service_btn a:hover {
    background: #004A67;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

/* --- スマホ表示時の設定 --- */
@media (max-width: 1024px) {
    .support_services_grid {
        flex-direction: column;
        gap: 20px;
    }
    
    .support_service_card {
        width: 100%; /* スマホ時は1列 */
    }
    
    .support_service_card h4 {
        font-size: 1.25rem;
    }
}

/* =========================================================
   無料相談フォーム専用
========================================================= */

.freeconsul-form .m3formbox {
  max-width: 784px;
  margin: 30px auto 0;
  background: #F7F9FA;
  padding: 40px;
  box-sizing: border-box;
}

/* 各設問の間隔 */
.freeconsul-form .m3formbox p {
  margin-bottom: 22px;
}

/* 見出しテキスト */
.freeconsul-form .m3formbox label,
.freeconsul-form .m3formbox .form-heading {
  display: block;
  font-size: 1.5rem;
  font-weight: bold;
  color: #333;
  line-height: 1.6;
  margin-bottom: 8px;
}

/* 入力欄共通 */
.freeconsul-form .m3formbox input[type="text"],
.freeconsul-form .m3formbox input[type="email"],
.freeconsul-form .m3formbox input[type="tel"],
.freeconsul-form .m3formbox input[type="number"],
.freeconsul-form .m3formbox input[type="date"],
.freeconsul-form .m3formbox textarea {
  border-radius: 0;
  padding: 12px 14px;
  font-size: 1.5rem;
  width: 100%;
  border: 2px solid #333;
  box-shadow: inset 0 0 4px 0 #cccccc;
  box-sizing: border-box;
  background: #fff;
  margin-top: 10px;
}

.freeconsul-form .m3formbox textarea {
  min-height: 180px;
  resize: vertical;
}

/* placeholder */
.freeconsul-form .wpcf7-form-control::placeholder {
  color: rgba(0, 0, 0, 0.4);
}

/* number + 単位 */
.freeconsul-form .unit-field {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  flex-wrap: nowrap;
}

.freeconsul-form .unit-field .wpcf7-form-control-wrap {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.freeconsul-form .unit-field input[type="number"],
.freeconsul-form .unit-field input[type="text"] {
  width: 100%;
  margin: 0;
}

.freeconsul-form .unit-field .unit {
  display: inline-block;
  flex: 0 0 auto;
  white-space: nowrap;
  margin: 0;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1;
}

/* radio エリア */
.freeconsul-form .is-radio-group {
  margin-top: 10px;
}

.freeconsul-form .is-radio-group .wpcf7-form-control {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.freeconsul-form .is-radio-group .wpcf7-list-item {
  margin: 0;
}

.freeconsul-form .is-radio-group .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border: 2px solid #333;
  background: #fff;
  box-shadow: inset 0 0 4px 0 #cccccc;
  font-size: 1.25rem;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 0;
  cursor: pointer;
}

.freeconsul-form .is-radio-group input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 0;
  flex-shrink: 0;
  accent-color: #2B96AA;
}

/* checkbox エリア */
.freeconsul-form .wpcf7-checkbox {
  display: block;
  margin-top: 10px;
}

.freeconsul-form .wpcf7-checkbox .wpcf7-list-item {
  display: block;
  margin: 0 0 12px;
}

.freeconsul-form .wpcf7-checkbox .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 1.2rem;
  font-weight: bold;
  line-height: 1.6;
  margin-bottom: 0;
  cursor: pointer;
}

.freeconsul-form .wpcf7-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 4px;
  flex-shrink: 0;
  accent-color: #2B96AA;
}

/* エラーメッセージ */
.freeconsul-form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  color: #d93025;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.5;
}

/* response output */
.freeconsul-form .wpcf7 form .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 12px 16px;
  font-size: 1rem;
  line-height: 1.7;
}

/* 送信ボタン */
.freeconsul-form .m3formbox .wpcf7-submit {
  font-size: 1.5rem;
  font-weight: bold;
  color: #fff;
  display: block;
  width: 50%;
  margin: 20px auto 0;
  padding: 20px;
  border: none;
  border-radius: 10px;
  background: #2B96AA;
  box-shadow: 0 5px 0 0 #9CBBC1;
  cursor: pointer;
}

.freeconsul-form .m3formbox .wpcf7-submit:hover {
  opacity: 0.9;
}

/* スマホ */
@media (max-width: 1024px) {
  .freeconsul-form .m3formbox {
    padding: 15px;
  }

  .freeconsul-form .m3formbox label,
  .freeconsul-form .m3formbox .form-heading {
    font-size: 1.2rem;
  }

  .freeconsul-form .m3formbox input[type="text"],
  .freeconsul-form .m3formbox input[type="email"],
  .freeconsul-form .m3formbox input[type="tel"],
  .freeconsul-form .m3formbox input[type="number"],
  .freeconsul-form .m3formbox input[type="date"],
  .freeconsul-form .m3formbox textarea {
    font-size: 1.2rem;
    padding: 10px 12px;
  }

  .freeconsul-form .unit {
    font-size: 1.2rem;
  }

  .freeconsul-form .unit-field {
    gap: 10px;
  }

  .freeconsul-form .unit-field .unit {
    font-size: 1.2rem;
  }

  .freeconsul-form .is-radio-group .wpcf7-form-control {
    flex-direction: column;
    gap: 10px;
  }

  .freeconsul-form .is-radio-group .wpcf7-list-item label {
    width: 100%;
    box-sizing: border-box;
    font-size: 1.1rem;
    padding: 10px 12px;
  }

  .freeconsul-form .wpcf7-checkbox .wpcf7-list-item label {
    font-size: 1.05rem;
  }

  .freeconsul-form .m3formbox .wpcf7-submit {
    padding: 10px;
    width: 60%;
    font-size: 1.2rem;
  }
}

.freeconsul-form .unit-field > p {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}

.freeconsul-form .unit-field > p .wpcf7-form-control-wrap {
  flex: 1 1 auto;
  min-width: 0;
}

.freeconsul-form .unit-field > p input[type="number"],
.freeconsul-form .unit-field > p input[type="text"] {
  width: 100%;
  margin: 0;
}

.freeconsul-form .unit-field > p .unit {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1;
}

@media (max-width: 1024px) {
  .freeconsul-form .unit-field > p .unit {
    font-size: 1.2rem;
  }
}

/* =========================================================
   サンクスページ専用
========================================================= */

.page-id-721 h1,
.page-id-721 .breadcrumbs {
  display: none;
}

.page .thanks-page {
  padding: 20px 0 60px;
}

.page .thanks-box {
  max-width: 784px;
  margin: 0 auto;
  padding: 50px 40px;
  background: #F7F9FA;
  box-sizing: border-box;
  text-align: center;
}

/* 共通 page h1 の装飾を打ち消す */
.page .thanks-box h1 {
  display: block;
  margin: 0 0 25px;
  padding: 0;
  font-size: 2.5rem;
  font-weight: bold;
  color: #004A67;
  line-height: 1.5;
  text-shadow: none;
  position: static;
  background: transparent;
}

.page .thanks-box h1::before {
  content: none;
}

.page .thanks-label {
  display: inline-block;
  margin: 0 0 15px;
  padding: 4px 18px;
  background: #2B96AA;
  color: #fff;
  font-weight: bold;
  letter-spacing: 2px;
  border-radius: 30px;
  line-height: 1.4;
}

.page .thanks-box p {
  font-size: 1.1rem;
  margin: 0 0 15px;
  line-height: 1.8;
}

.page .thanks-info,
.page .thanks-contact {
  margin-top: 35px;
  padding: 25px;
  background: #fff;
  text-align: left;
}

/* 共通 page h2 の左線デザインをthanks用で上書き */
.page .thanks-info h2,
.page .thanks-contact h2 {
  margin: 0 0 15px;
  padding: 0 0 0 12px;
  font-size: 1.5rem;
  font-weight: bold;
  color: #004A67;
  line-height: 1.5;
  border: none;
  background: transparent;
}

.page .thanks-info h2::before,
.page .thanks-contact h2::before,
.page .thanks-info h2::after,
.page .thanks-contact h2::after {
  content: none;
}

.page .thanks-info ol {
  margin: 0;
  padding-left: 1.5em;
}

.page .thanks-info li {
  margin-bottom: 10px;
  font-weight: bold;
  line-height: 1.8;
}

.page .thanks-contact .orangebutton1 {
  background: url("images/lineicon_w.png") no-repeat 15px center #00B800;
  background-size: 10%;
  padding: 10px 60px;
  box-shadow: none;
}

.page .thanks-links {
  margin-top: 30px;
}

.page .thanks-links p {
  margin-bottom: 0;
}

.page .thanks-links a {
  font-weight: bold;
}

.page .thanks-contact p {
  text-align: center;
}

@media (max-width: 1024px) {
  .page .thanks-box {
    padding: 30px 15px;
  }

  .page .thanks-box h1 {
    font-size: 2rem;
    line-height: 1.5;
  }

  .page .thanks-box p {
    font-size: 1rem;
  }

  .page .thanks-info,
  .page .thanks-contact {
    padding: 18px 15px;
  }

  .page .thanks-info h2,
  .page .thanks-contact h2 {
    font-size: 1.25rem;
  }
}

/* ======
育成塾LP2
====== */

.imgbox.buttonin {
  position: relative;
}

.imgbox.buttonin a {
  position: absolute;
  bottom: 4.4%;
  width: 80%;
  display: block;
  left: 50%;
  transform: translateX(-50%);
  animation: ctaFloat 2.4s ease-in-out infinite;
  will-change: transform;
}

.imgbox.buttonin a.ctatype2 {
  bottom: 17%;
}

@keyframes ctaFloat {
  0%,
  100% {
    transform: translateX(-50%) translateY(0) scale(1);
  }
  25% {
    transform: translateX(-50%) translateY(-4px) scale(1.02);
  }
  50% {
    transform: translateX(-50%) translateY(0) scale(1);
  }
  75% {
    transform: translateX(-50%) translateY(-2px) scale(1.01);
  }
}