@charset "UTF-8";
/* ----------------------------------------------------
   custom　CSS
---------------------------------------------------- */

:root {
  --bs-primary: #EFBB3F;
  --bs-base: #1271B9;
  --bs-light: #3DA0D7;
  --bs-pale: #9CD5F4;

  --bs-text: #1D3258;
  --bs-mono: #AAAAAA;
  --bs-mono-light: #EEEEEE;
  --bs-mono-ultra: #F6F6F6;
  --bs-accent: #D12C68;

  --bs-accent-line: #06C755;
  
  --bs-font-en: "Gantari", sans-serif;
  --bs-font-sans-serif: "Noto Sans JP",
  "ヒラギノ角ゴ Pro W3",
  "Hiragino Kaku Gothic Pro",
  "メイリオ", Meiryo, Osaka, sans-serif;

  /* ===== Font Size ===== */
  --bs-font-xl: 36px;
  --bs-font-lg: 24px;
  --bs-font-md: 20px;
  --bs-font-base: 18px;
  --bs-font-sm: 16px;
  --bs-font-xs: 14px;
  --bs-font-xxs: 13px;

  --bs-font-h2: 36px;
  --bs-font-h3: 24px;
  /* ===== SP用（初期値としても定義） */
  --bs-font-sp-base: 16px;
  --bs-font-sp-h2: 28px;
  --bs-font-sp-h3: 20px;
  /* ===== Line Height ===== */
  --bs-line-height: 1.7;
  /* 余白 */
  --bs-space-xs: 0.5rem;   /* 8px */
  --bs-space-sm: 0.75rem;  /* 12px */
  --bs-space-md: 1rem;     /* 16px */
  --bs-space-lg: 1.5rem;   /* 24px */
  --bs-space-xl: 2.25rem;  /* 36px */
  --bs-space-2xl: 3rem;    /* 48px */
  --bs-space-2xl-pc: 6rem;    /* 96px */
}


@font-face {
  font-family: "Gantari";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("./fonts/Gantari-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "Gantari";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("./fonts/Gantari-Bold.ttf") format("truetype");
}
@font-face {
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("./fonts/NotoSansJP-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "Noto Sans JP";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("./fonts/NotoSansJP-Bold.ttf") format("truetype");
}


/* ---------------------------------------
   基本
--------------------------------------- */

body{
  font-family: var(--bs-font-sans-serif);
  font-size: var(--bs-font-base);
  line-height: var(--bs-line-height);
  font-weight: 400;
  margin: 0;
  padding-top: 130px; /* header高さに合わせる */
  color: var(--bs-text);
}
@media (max-width: 767px) {
  body{
    padding-top: 65px; /* header高さに合わせる */
    font-size: var(--bs-font-sp-base);
  }
  .container,
  .container-fluid,
  .container-xxl,
  .container-xl,
  .container-lg,
  .container-md,
  .container-sm {
    padding-right: 20px;
    padding-left: 20px;
  }
}
:target {
  scroll-margin-top: 130px;
}
[id] {
  scroll-margin-top: 130px;
}
@media (max-width: 767px) {
  :target {
    scroll-margin-top: 65px;
  }
  [id] {
    scroll-margin-top: 65px;
  }
}

@media (max-width: 767px) {
  iframe[src*="www.google.com/maps/embed"] {
    aspect-ratio: 4 / 3;
    width: 100%;
    height: auto;
  }
}
a.decoration-none{
  text-decoration: none;
  color: inherit;
}
a.btn{
  display: block;
  width: fit-content;
  margin: 0 auto;
  font-size: var(--bs-font-lg);
}
a.btn-primary{ 
  text-decoration: none;
  color: var(--bs-white);
  background-color: var(--bs-primary);
  border-radius: 200px;
  border: 2px solid var(--bs-primary);
  padding: var(--bs-space-md) var(--bs-space-lg);
  height: fit-content;
  font-weight: 700;
  text-align: center;
}
a.btn-primary:hover{
  text-decoration: none;
  color: var(--bs-primary);
  background-color: var(--bs-white);
  transition: 0.5s;
}
a.btn-primary.line-color{
  background-color: var(--bs-accent-line);
  border: 2px solid var(--bs-accent-line);
}
a.btn-primary.line-color:hover{
  color: var(--bs-accent-line);
  background-color: var(--bs-white);
  transition: 0.5s;
}
a.btn-base{
  text-decoration: none;
  color: var(--bs-white);
  background-color: var(--bs-base);
  border-radius: 200px;
  border: 2px solid var(--bs-base);
  padding: var(--bs-space-md) var(--bs-space-lg);
  height: fit-content;
  font-weight: 700;
  text-align: center;
}
a.btn-base:hover{
  text-decoration: none;
  color: var(--bs-base);
  background-color: var(--bs-white);
  transition: 0.5s;
}
a.btn-border-base{
  text-decoration: none;
  color: var(--bs-light);
  background-color: var(--bs-white);
  border-radius: 200px;
  border: 1px solid var(--bs-base);
  padding: var(--bs-space-md) var(--bs-space-lg);
  height: fit-content;
  font-weight: 700;
  text-align: center;
}
a.btn-border-base:hover{
  text-decoration: none;
  color: var(--bs-white);
  background-color: var(--bs-primary);
  transition: 0.5s;
}
@media (max-width: 767px) {
  a.btn{
    font-size: var(--bs-font-base);
  }
  a.btn-sp-full{
    font-size: var(--bs-font-base);
    width:100%;
    display: block;
  }
}
ul.annotation {
  list-style: none;
  padding: 0;
}
ul.annotation li {
  display: flex;
  line-height: 1.7;
}
ul.annotation li::before {
  content: "※";
  margin-right: .25em;
}

p{
  margin-bottom: 0;
}
p+p{
  margin-top: var(--bs-space-md);
}
ul.list-none{
  list-style: none;
  padding-left: 0;
}
ul.list-disc{
  list-style: disc;
  padding-left: var(--bs-space-md);
  margin-bottom: 0;
  text-align: left;
}
ul.list-check{
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
  text-align: left;
}
.list-check li {
  position: relative;
  padding-left: var(--bs-space-lg);
  margin-bottom:var(--bs-space-md);
}
.list-check li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 18px;
  height: 18px;
  background-color: var(--bs-light);
  -webkit-mask: url('../img/check_circle.svg') no-repeat center / contain;
  mask: url('../img/check_circle.svg') no-repeat center / contain;
}
.list-check li:last-child{
  margin-bottom:0;
}
@media (max-width: 767px) {
  .list-check li {
    margin-bottom:var(--bs-space-sm);
  }
}

.section-top-margin{
  margin-top: 100px;
}
@media (max-width: 767px) {
  .section-top-margin{
    margin-top: 60px;
  }
}
.container-min{
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}
.box{
  padding: var(--bs-space-xl);
}
.border-radius{
  border-radius: 40px;
}
@media (max-width: 767px) {
  .box{
    padding: var(--bs-space-lg);
  }
  .border-radius{
    border-radius: 20px;
  }
}

.bg-mono-ultra{
  background-color: var(--bs-mono-ultra);
}
.bg-primary-color{
  background-color: var(--bs-primary);
}
/* ---------------------------------------
   フォント
--------------------------------------- */
h2,.h2{
  font-size: var(--bs-font-h2);
  line-height: 1.35;
  margin-top: 100px;
  font-weight: 700;
  position: relative;
  display: inline-block;
  margin-bottom: calc(16px + var(--bs-space-xl));
  color: var(--bs-base);
  text-align: center;
}
h2:before{
  content: '';
  position: absolute;
  bottom: -16px;
  display: inline-block;
  width: 36px;
  height: 3px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color:var(--bs-primary);
  border-radius: 12px;
}
@media (max-width: 767px) {
  h2,.h2{
    margin-top: 60px;
    font-size: var(--bs-font-sp-h2);
  }
}
h3,.h3{
  font-size: var(--bs-font-h3);
  font-weight: 700;
  line-height: 1.4;
}
@media (max-width: 767px) {
  h3,.h3{
    font-size: var(--bs-font-sp-h3);
  }
}
h4,.h4{
  font-size: var(--bs-font-lg);
}
h5,.h5{
  font-size: var(--bs-font-lg);
}
/* Text utilities */
.text-lg {
  font-size: var(--bs-font-lg);
}
.text-md {
  font-size: var(--bs-font-md);
}
.text-sm {
  font-size: var(--bs-font-sm);
}
.text-xs {
  font-size: var(--bs-font-xs);
}





/* ---------------------------------------
   header
--------------------------------------- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background-color: var(--bs-white);
  line-height: 1.2;
}
.site-header .container{
  width: 100%;
  max-width:100%;
  margin: 0;
  flex-direction: column;
  align-items: end;
}
.site-header .header-upper{
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.site-header p{
  margin: 0;
}
.site-header .navbar-brand {
  margin: 0;
  padding: 0;
  line-height: 1;
  width: 260px;
  height: auto;
}
.site-header .header-right{
  display: flex;
  flex-direction: column;
  align-items: end;
}
.site-header .header-description{
  font-size: var(--bs-font-xxs);
  color: var(--bs-text);
}
.site-header .header-contact{
  display: flex;
  flex-direction: row;
  gap: var(--bs-space-lg);
  align-items: center;
}
.site-header .header-contact a.btn-primary{
  padding: 2px var(--bs-space-lg);
  font-size: var(--bs-font-md);
  font-weight: 700;
}
.header-tel a{
  font-family: var(--bs-font-en);
  font-size: var(--bs-font-xl);
  text-decoration: none;
  color: var(--bs-light);
  font-weight: 700;
}
.header-tel span{
  font-size: var(--bs-font-lg);
  margin-right: var(--bs-space-xs);
}
.site-header .navbar-nav{
  gap: 16px;
  flex-direction: row;
  font-size: var(--bs-font-base);
}
.site-header .navbar-nav a{
  text-decoration: none;
  color: var(--bs-text);
  padding: var(--bs-space-sm) 0 0;
}
.site-header .navbar-nav a:hover{
  text-decoration: none;
  color: var(--bs-light);
}
.hamburger-text{
  display: none;
}
/* タブレット */
@media (min-width: 768px) and (max-width: 991px) {
  .site-header .navbar-brand {
    width: 200px;
  }
  .site-header .navbar-nav{
    font-size: var(--bs-font-sm);
  }
  .header-tel a{
    font-size: var(--bs-font-lg);
  }
  .header-tel span{
    font-size: var(--bs-font-md);
  }
}
/* SP */
@media (max-width: 767px) {
  .site-header .header-right{
    display: none;
  }
  .site-header .navbar-brand {
    width: 180px;
  }
  /* ナビゲーション */
  .header-nav {
    display: none;
    position: fixed;
    right: -768px; /*右側に隠しておきます*/
    width: 100%;
    top: 0;
    height: 100vh;
    padding-top: 5rem;
    background-color:var(--bs-pale);
    -webkit-transition: all 0.6s;
    transition: all 0.6s;
    z-index: 20;
    overflow-y: auto;
  }
  .nav-open .header-nav {
    display: block;
  }
  /* ハンバーガーボタン(三本線の実装) */
  .hamburger-btn {
    position: absolute; /*.headerNavOuterを基準にして、絶対配置*/
    right: 0;
    top: 0;
    width: 60px;
    height: 60px;
    cursor: pointer;
    z-index: 30;
  }
  .hamburger-line {
    position: absolute; /*.headerNavOuterを基準にして、絶対配置*/
    left: 18px;
    width: 24px;
    height: 2px;
    border-radius: 2px;
    background-color:var(--bs-base);
    -webkit-transition: all 0.6s;
    transition: all 0.6s;
  }
  .hamburger-line_1 {
    top: 16px;
  }
  .hamburger-line_2 {
    top: 23px;
  }
  .hamburger-line_3 {
    top: 30px;
  }
  .hamburger-text{
    display: block;
    font-size: 12px;
    color: var(--bs-base);
    position: absolute;
    bottom: 0;
    left: 8px;
  }
  /* ハンバーガーボタンをクリックした際の動き */
  .nav-open {
    /* ナビゲーションが現れる */
    /* 半透明の背景を表示させます。 */
    /* 三本線のハンバーガーを、バッテンにします */
  }
  .nav-open .header-nav {
    right: 0;
    transition: 0.5s;
  }
  .nav-open .black-bg {
    opacity: 0.8;
    visibility: visible;
  }
  .nav-open .hamburger-btn {
    right: 6px;
    top: 8px;
  }
  .nav-open .hamburger-line_1 {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    top: 25px;
  }
  .nav-open .hamburger-line_2 {
    width: 0;
    left: 50%;
  }
  .nav-open .hamburger-line_3 {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    top: 25px;
  }
  .nav-open .hamburger-text{
    left: 11px;
  }
  .text-close {
    display: none;
  }
  /* 開いたとき */
  body.nav-open .text-open {
    display: none;
  }
  body.nav-open .text-close {
    display: inline;
  }
  .sp-header-logo {
    width: 96%;
    display: block;
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--bs-white);
    padding: var(--bs-space-xs);
    border-radius: 20px;
  }
  .sp-header-logo img{
    width:180px;
  }
  .site-header .navbar-nav{
    padding: var(--bs-space-xs) var(--bs-space-lg);
    background: var(--bs-white);
    border-radius: 20px;
    flex-direction: column;
    margin: 10px;
    gap: 0;
  }
  .nav-link{
    font-size: var(--bs-font-md);
    border-bottom: 1px dashed var(--bs-light);
    padding: var(--bs-space-md) 0;
  }
  .site-header .navbar-nav a{
    padding: var(--bs-space-md) 0;
  }
  .navbar-nav li:last-child .nav-link{
    border-bottom:none;
  }
  .sp-header-box{
    margin: 10px;
    border-radius: 20px;
    background: var(--bs-white);
    padding: var(--bs-space-sm);
  }
  .header-nav-contact{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--bs-space-md);
  }
}

/* ---------------------------------------
   footer
--------------------------------------- */
.footer{
  margin-top: 100px;
}
.footer-map iframe{
  width: 100%;
  height: 480px;
}
.footer-lower{
  padding: 100px 0;
}
.footer-logo{
  width: 260px;
  margin-bottom: var(--bs-space-lg);
}
.footer-contact{
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--bs-space-lg);
  padding-bottom: 100px;
}
.footer-tel{
  font-family: var(--bs-font-en);
  font-size: 34px;
  color: var(--bs-light);
  font-weight: 700;
}
.footer-tel span{
  font-size: var(--bs-font-md);
  margin-right: var(--bs-space-xs);
}
.footer .navbar-nav{
  display: flex;
  flex-direction: row;
  gap: 36px;
  justify-content: center;
}
.footer .navbar-nav li:hover{
  color: var(--bs-light);
}
#fixed-footer {
  display: none;
}
.copylight{
  background: var(--bs-base);
  color: var(--bs-white);
  font-size: 12px;
  text-align: center;
  padding: var(--bs-space-xs);
}

/* SP */
@media (max-width: 767px) {
  .footer{
    margin-top: 60px;
    border-top: 2px solid var(--bs-light);
    padding: 60px 0 54px;
  }
  .footer-upper{
    padding-left: 20px;
    padding-right: 20px;
    text-align: center;
  }
  .footer-map iframe{
    height: 280px;
    border-radius: 20px;
  }
  .footer-lower{
    padding: var(--bs-space-xl) 0;
  }
  .footer-contact{
    padding-bottom: var(--bs-space-lg);
  }
  .footer .navbar-nav{
    flex-wrap: wrap;
    column-gap: var(--bs-space-xl);
    row-gap: 0;
  }
  .footer .nav-link{
    border-bottom: none;
    padding:var(--bs-space-sm) 0;
  }
  #fixed-footer {
    display: block;
    position: fixed;
    bottom: -0;
    width: 100%;
    height: 54px;
    transition: 0.5s;
    z-index: 8;
  }
  .fixed-footer-inner{
    display: flex;
    height: 50px;
  }
  .fixed-footer-inner .fixed-footer-web,
  .fixed-footer-inner .fixed-footer-line{
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--bs-white);
    height: 54px;
    text-decoration: none;
    font-weight: 700;
  }
  .fixed-footer-inner .fixed-footer-web{
    background-color: var(--bs-primary);
  }
  .fixed-footer-inner .fixed-footer-line{
    background-color: var(--bs-accent-line);
  }
  .fixed-footer-inner p+p{
    margin-top: 0;
  }
}
/* ---------------------------------------
   診療時間
--------------------------------------- */
.clinic-hours-table{
  width: 100%;
  font-size: var(--bs-font-xxs);
  color: var(--bs-text);
  text-align: center;
  border-collapse: separate;
  border-spacing: 0;
}
.clinic-hours-table thead th{
  font-weight: 400;
  line-height:1.2;
  padding: var(--bs-space-xs);
  background-color: var(--bs-base);
  color: var(--bs-white);
  border-right: 1px solid var(--bs-white);
}
.clinic-hours-table thead th:first-child{
  border-radius: 10px 0 0 0;
  border-left: 1px solid var(--bs-base);
}
.clinic-hours-table thead th:last-child{
  border-radius: 0 10px 0 0;
  border-right: 1px solid var(--bs-base);
}
.clinic-hours-table tbody th{
  font-weight: 400;
  border-left: 1px solid var(--bs-base);
  border-right: 1px solid var(--bs-base);
  border-bottom: 1px solid var(--bs-base);
  background-color: var(--bs-white);
}
.clinic-hours-table tbody td{
  line-height:1.2;
  padding: var(--bs-space-xs);
  border-right: 1px solid var(--bs-base);
  border-bottom: 1px solid var(--bs-base);
  background-color: var(--bs-white);
}
.clinic-hours-table tbody tr:last-child th{
  border-radius: 0 0 0 10px;
}
.clinic-hours-table tbody tr:last-child td:last-child{
  border-radius: 0 0 10px 0;
}
.clinic-hours-notes{
  font-size: var(--bs-font-base);
  display: flex;
  flex-direction: column;
}
.clinic-hours-notes p{
  margin: 0;
}
.clinic-hours-notes .annotation{
  font-size: var(--bs-font-xs);
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .clinic-hours-notes{
    gap: var(--bs-space-xs);
  }
}
/* ---------------------------------------
   TOP
--------------------------------------- */
.front-mv{
  position: relative;
  width: 100%;
  min-width: 320px;
}
.front-mv-slide{
  width: 90%;
  max-width: 1280px;
  height: 700px;
  margin: 0 auto;
  border-radius: 60px;
  overflow: hidden; /* （角丸効かせる） */
  position: relative;
}
/* 各スライド */
.front-mv-slide > div {
  position: absolute;
  inset: 0;
}
.slide-01, .slide-02, .slide-03{
   position: absolute;
   top:0;
   left:0;
   width: 100%;
   height: 100%;
   background-size: cover;
   background-repeat: no-repeat;
}
.slide-01{
  background-image: url('https://abiko-urol.com/wp/wp-content/uploads/2026/04/26_0220_2-scaled.jpg');
  animation: slide-animation 18s infinite;
  animation-delay: 0s;
  opacity: 1;
}
.slide-02{
  background-image: url('https://abiko-urol.com/wp/wp-content/uploads/2026/04/top_02-scaled.jpg');
  animation: slide-animation 18s infinite;
  animation-delay: 6s;
  opacity: 0;
}
.slide-03{
  background-image: url('https://abiko-urol.com/wp/wp-content/uploads/2026/04/abiko_st-scaled.jpg');
  animation: slide-animation 18s infinite;
  animation-delay: 12s;
  opacity: 0;
}
@keyframes slide-animation {
  0%   { opacity: 0; }
  8%   { opacity: 1; }   /* フェードイン早め */
  30%  { opacity: 1; }   /* 表示時間 */
  38%  { opacity: 0; }   /* フェードアウト */
  100% { opacity: 0; }
}
/* テキスト */
.front-mv-text{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 90%;
  max-width: 1280px;
  margin: 4% auto;
  pointer-events: none; /* ←クリック透過（必要なら） */
  gap: 3rem;
}
.front-mv-text-upper{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.front-mv-text-main{
  display: flex;
  flex-direction: column;
  text-align: center;
  align-items: center;
  justify-content: space-between;
}
.front-mv-text-main p{
  background-color: var(--bs-white);
  color: var(--bs-base);
  font-size: 40px;
  font-weight: 700;
  padding:  0 var(--bs-space-xs);
  display: inline-block;
	border-radius: 10px;
}
.front-mv-text-sub{
  margin-top: var(--bs-space-md);
  text-align: center;
	text-shadow:2px 2px 0 #FFF, -2px -2px 0 #FFF,
              -2px 2px 0 #FFF, 2px -2px 0 #FFF,
              0px 2px 0 #FFF,  0-2px 0 #FFF,
              -2px 0 0 #FFF, 2px 0 0 #FFF;
}
.front-mv-text-sub p{
  color: var(--bs-base);
  font-size: var(--bs-font-lg);
  font-weight: 700;
  line-height: 2;
}
.front-mv-text-lower{
  align-self: flex-end;
  width: 50%;
  padding: var(--bs-space-lg);
  background-color: rgba(156,213,244,.8); /* --bs-pale */
  border-radius: 40px 0 0 40px;
}
/* タブレット */
@media (min-width: 768px) and (max-width: 991px) {
  .front-mv-text-lower{
    width: 70%;
  }

}
/* SP */
@media (max-width: 767px) {
  .front-mv{
    padding: var(--bs-space-md) 20px;
  }
  .front-mv-slide{
    width: 100%;
    aspect-ratio: 335 / 723;
    margin: 0 auto;
    border-radius: 30px;
    overflow: hidden; /* （角丸効かせる） */
    position: relative;
  }
  .front-mv-text {
    width: 94%;
    justify-content: center;
  }
  .front-mv-text-main{
    gap:2rem;
  }
  .mv-text-main-sp{
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .front-mv-text-main p{
    font-size: var(--bs-font-lg);
    display: flex;
    width:fit-content;
  }
  .front-mv-text-main p+p{
    margin-top: var(--bs-space-xs);
  }
  .front-mv-text-sub {
    margin-top: var(--bs-space-2xl);
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .front-mv-text-sub p{
    font-size: var(--bs-font-sp-base);
  }
  .front-mv-text-lower{
    display: none;
  }
}

.notice-box{
  margin-top: 100px;
}
.notice-head{
  text-align: center;
}
.notice-title{
  font-weight: 700;
  font-size: var(--bs-font-lg);
}
.notice-text{
  text-align: center;
}
@media (max-width: 767px) {
  .notice-box{
    margin-top: 20px;
  }
  /*
  .notice-box{
   width: calc(100% - 20px);
    margin-top: -100px;
    position: relative;
    z-index: 2;
  } */
  .notice-head{
    text-align: left;
  }
  .notice-title{
    font-size: var(--bs-font-md);
  }
  .notice-text{
    text-align: left;
  }
}
.news-list {
  margin-bottom: var(--bs-space-lg);
  padding: 0;
  list-style: none;
}
.news-item{
  border-radius: 20px;
  background-color: var(--bs-mono-ultra);
  padding: var(--bs-space-lg);
  color: var(--bs-text);
  font-size: var(--bs-font-base);
}
.news-head {
  display: flex;
  gap: var(--bs-space-md);
  align-items: center;
  text-align: left;
}
.news-date {
  white-space: nowrap;
  font-size: var(--bs-font-sm);
}
.news-title {
  font-size: var(--bs-font-lg);
  flex: 1;
  color: var(--bs-text);
  text-align: left;
}
.news-toggle {
  margin-left: auto;
  background: none;
  border: 0;
  cursor: pointer;
  width: 48px;
}
.news-item.is_open .arrow {
  transform: rotate(180deg);
  transition: 0.5s;
}
.news-body {
  display: none;
  padding-top: var(--bs-space-md);
  text-align: left;
}
.news-item.is_open .news-body {
  display: block;
}
.news-item + .news-item {
  margin-top: var(--bs-space-md);
}
.news-meta{
  display: flex;
  align-items: center;
  gap: var(--bs-space-xs);
  width: stretch;
}
@media (max-width: 767px) {
  .news-title {
    font-size: var(--bs-font-md);
  }
  .news-item{
    padding: var(--bs-space-lg);
  }
  .news-meta{
    flex-direction: column;
    align-items: start;
  }
}
.top-medical-btn{
  display: flex;
  align-items: center;
  flex-direction: column;
  height: 100%;
  background-color: var(--bs-light);  
  text-align: center;
  border-radius: 40px;
  text-decoration: none;
  padding: var(--bs-space-md);
}
.top-medical-btn:hover{
  background-color: var(--bs-base);
}
.top-medical-btn h3{
  font-weight: 700;
  font-size: var(--bs-font-lg);
  color: var(--bs-white);
}
.top-medical-btn .icon-circle{
  width: 100px;
  height: 100px;
  background: var(--bs-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--bs-space-md);
}
.icon-circle img {
  width: 80%;
  height: auto;
}
.arrow-circle-right {
  display: inline-flex;
  align-items: center;
  gap: var(--bs-space-xs);
}
.arrow-circle-right::after {
  content: "";
  width: 28px;
  height: 28px;
  background-color: currentColor;
  /* SVGをマスクとして使う */
  -webkit-mask: url('../img/arrow_circle_right.svg') no-repeat center / contain;
  mask: url('../img/arrow_circle_right.svg') no-repeat center / contain;
}
/* SP */
@media (max-width: 767px) {
  .top-medical-btn{
    padding: var(--bs-space-sm);
  }
  .top-medical-btn h3{
    font-size: var(--bs-font-sp-base);
  }
  .top-medical-btn .icon-circle{
    width: 80px;
    height: 80px;
    margin-bottom: var(--bs-space-sm);
  }
}
.top-kensa-btn{
  display: flex;
  align-items: center;
  flex-direction: column;
  height: 100%;
  background-color: var(--bs-mono-light);  
  text-align: center;
  border-radius: 40px;
  text-decoration: none;
  padding: var(--bs-space-md);
}
.top-kensa-btn:hover{
  background-color: var(--bs-pale);
}
.top-kensa-btn h3{
  font-weight: 700;
  font-size: var(--bs-font-lg);
  color: var(--bs-base);
}
.top-kensa-btn .icon-circle{
  width: 100px;
  height: 100px;
  background: var(--bs-white);
  border-radius: 50%;
  border:5px solid var(--bs-mono);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--bs-space-md);
}
.top-kensa-btn p{
  color: var(--bs-text);
}
.top-kensa-btn .arrow-circle-right {
  display: flex;
  width: 100%;
  justify-content: end;
  color: var(--bs-light);
}
.top-kensa-btn .arrow-circle-right::after {
  content: "";
  width: 28px;
  height: 28px;
  background-color: currentColor;
  /* SVGをマスクとして使う */
  -webkit-mask: url('../img/arrow_circle_right.svg') no-repeat center / contain;
  mask: url('../img/arrow_circle_right.svg') no-repeat center / contain;
}
/* SP */
@media (max-width: 767px) {
  .top-kensa-btn{
    padding: var(--bs-space-sm);
  }
  .top-kensa-btn .icon-circle{
    width: 90px;
    height: 90px;
    margin-bottom: var(--bs-space-sm);
  }
}
.h3-number-title {
  display: flex;
  align-items: center;
  gap: var(--bs-space-xs);
}
.h3-number-item{ 
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--bs-space-xs);
  color: var(--bs-pale);
  font-family: var(--bs-font-en);
  font-size: 48px;  
}
.h3-number-item::after{
  content: "";
  width: 8px;
  height: 8px;
  background-color: var(--bs-primary);
  border-radius: 50%;
}
/* SP */
@media (max-width: 767px) {
  .h3-number-item{ 
    font-size: 36px;  
  }
}


/* ---------------------------------------
   下層ページ
--------------------------------------- */
.breadcrumb{
  margin-top: var(--bs-space-md);
}
.breadcrumb-item{
  font-size: var(--bs-font-xxs);
}
.breadcrumb-item a{
  color:var(--bs-text);
  text-decoration: none;
}
.breadcrumb-item.active{
  color:var(--bs-text);
}
.breadcrumb-item + .breadcrumb-item::before{
  color: var(--bs-light);
}

/* -----おしらせ一覧ページ------------ */
.archive-news-list{
  margin-top: var(--bs-space-2xl);
  margin-bottom: var(--bs-space-2xl-pc);
  padding: 0;
  list-style: none;
}
.archive-news-item{
  border-radius: 20px;
  background-color: var(--bs-mono-ultra);
  color: var(--bs-text);
  font-size: var(--bs-font-base);
}
.archive-news-item + .archive-news-item {
  margin-top: var(--bs-space-md);
}
.archive-news-item a{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--bs-space-md);
  width: 100%;
  height: 100%;
  padding: var(--bs-space-lg);
  text-decoration: none;
}
.archive-news-item a::after {
  content: "";
  width: 28px;
  height: 28px;
  background-color: var(--bs-primary);
  -webkit-mask: url(../img/arrow_circle_right.svg) no-repeat center / contain;
  mask: url(../img/arrow_circle_right.svg) no-repeat center / contain;
}
h2.archive-news-title{
  margin: var(--bs-space-xs) 0 0;
  font-size: var(--bs-font-md);
  text-align-last: left;
  color: var(--bs-base);
}
h2.archive-news-title:before{
  content: none;
}
.archive-news-date{
  color: var(--bs-light);
}
.archive-news-item-inner{
  display: flex;
  flex-direction: column;
  width: stretch;
}
.news-pagination .page-numbers.prev{
  transform: rotate(180deg);
}
.news-pagination .page-numbers.prev,
.news-pagination .page-numbers.next{
  color: var(--bs-primary);
}
.news-pagination .page-numbers{
  color: var(--bs-base);
  font-weight: 700;
}
.news-pagination{
  gap: var(--bs-space-lg);
  display: flex;
  align-items: center;
  justify-content: center;
}
a.page-numbers{
  color: var(--bs-primary);
}
@media (max-width: 767px) {
  .archive-news-item a{
    padding: var(--bs-space-lg);
  }
  .archive-news-meta{
    gap: var(--bs-space-md);
  }
}

