/*
Theme Name: implant-katsuta-dental
Theme URI: https://example.com/themes/implant-katsuta-dental
Author: EIO LLC
Author URI: https://example.com/
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: implant-katsuta-dental
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* =Reset (必要最低限)
--------------------------------------------- */
* {
  box-sizing: border-box;
}

/* =Custom properties (single source of truth)
Put all commonly used variables here so they are easy to tweak.
--------------------------------------------- */
:root {
  --brand: #000C4C;
  --bg-blue-02:#304356;
  --bg-blue-dark:#23374A;
  --white: #ffffff;
  --border: rgba(255,255,255,.45);
  --row-border: #e6edf5;
  --circle-size: 150px;
  --icon-size: 42px;
  --divider: rgba(0,0,0,.15);
  --gold:#CFB585;
  --gold-1: #cdb789;
  --gold-2: #b79c6f;
  --gold-3: #8f744f;
  --gold-grade-01:#504633;
  --gold-grade-02:#938261;
  --gold-grade-03:#938261;
  --gold-grade-04:#504633;
  --cta-gap: 40px;
  /* News specific defaults (can be overridden) */
  --news-date-color: #888;
  --news-category-bg: #f2f6ff;
  --news-category-color: #0a6cff;
  --news-title-size: 17px;
  /* Font stacks (Figma): use Yu Mincho for body and headings */
  --gold-center: #bfa678;  /* 中心の金 */
  --gold-edge:   #8c744f;  /* 両端の金（透明化に使う色） */
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: "Yu Mincho", "Noto Serif JP", serif;
  color: #333;
  background: #fff;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: #0a6cff;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* =Custom properties (single source of truth)
(defined above near reset)
--------------------------------------------- */

/* =Base typography */
p {
  font-size: 18px;
  margin: 0 0 1em;
  line-height: 1.75;
}

h1, h2, h3, h4 {
  line-height: 1.3;
  margin: 0;
  font-family: var(--font-heading);
}

th,
td{
  font-size: 18px;
  line-height: 1.5;
}

.entry-title {
  margin-top: 0;
}

.entry-meta {
  font-size: 13px;
  color: #777;
  margin-bottom: 12px;
}

/* Decorative large gold heading used on front page */
.gradation-gold {
  background: linear-gradient(90deg, var(--gold-grade-01) 0%, var(--gold-grade-02) 30%, var(--gold-grade-03) 70%, var(--gold-grade-04) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Yu Mincho", serif;
  font-size: 88px;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 1.76px;
  text-align: center;
  margin-bottom: 20px;
}

.marker-darkblue {
  background: linear-gradient(
  to bottom,
  transparent 65%,
  #142435 65%,
  #142435 100%
  );
  /* 行ごとに帯が伸びるように */
  line-height: 2.2;
  padding: 0 .2em; /* 左右に少し余白（好みで調整） */
}

/* =Layout utilities
--------------------------------------------- */
.inner {
  max-width: 1000px;
  margin: 0 auto;
}

.inner-850{
  max-width: 850px;
  margin: 0 auto;
}

.inner-950 {
  max-width: 950px;
  margin: 0 auto;
}

.inner-900 {
  max-width: 900px;
  margin: 0 auto;
}

.inner-1000 {
  max-width: 1000px;
  margin: 0 auto;
}
.inner-1100 {
  max-width: 1100px;
  margin: 0 auto;
}
.inner-1150 {
  max-width: 1150px;
  margin: 0 auto;
}

.inner-1200 {
  max-width: 1200px;
  margin: 0 auto;
}

.flex-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;

}

.bg-blue{
  background-color: var(--brand);
  color: var(--white);
}
.bg-blue-02{
  background-color: var(--bg-blue-02);
  color:var(--white);
}
.align-center{
  text-align: center!important;
}
.align-left{
  text-align: left!important;
}
.align-right{
  text-align: right!important;
}
.align-start{
  align-items: flex-start;
}

.grid-box{
  display: grid;
  grid-template-columns: 1fr 1fr;
}

/* =Header
--------------------------------------------- */
header.site-header {
  background-color: var(--brand);
  padding: 20px 0;
}
.header-contact-box .header-title-box{
  margin-right: 30px;;
}
.header-contact-box .header-title-box p{
  color: var(--white);
  margin-bottom: 0;
}
.header-contact-box .header-title{
  background-color: var(--white);
  color: var(--brand);
  width: 100%;
  font-size: 18px;
  text-align: center;
  padding: 10px 0;
}

/* =Nav
--------------------------------------------- */
.primary-nav {
  display: flex;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  flex-wrap: wrap;
  justify-content: space-between;
}

.primary-nav a {
  color: var(--white);
}

/* =Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 24px;
}

.widget-title {
  font-weight: 700;
  font-size: 16px;
  margin: 0 0 8px;
}

/* =mv
--------------------------------------------- */
.mv{width: 100%;background-image: url(./img/image_mv-back.png);background-repeat: no-repeat;background-size: cover;position: relative;display: flex;align-items: center;justify-content: center;min-height: 600px;height: 50vh;}
.mv::after{
  content: "";
  position: absolute;
  background-image: url(./img/image_mv-doctor.png);
  background-repeat: no-repeat;
  background-size: cover;
  width: 23vw;
  height: 29vw;
  bottom: 0;
  right: 0;
  max-height: 600px;
  max-width: 450px;
}
.mv p,
.mv h1{
  color: var(--white);
}
.mv .inner-1200{
  width: 100%;
}
.mv .sub-title{
  
}
.mv .sub-title{
  margin-bottom:30px;
}
.mv .sub-title span{
  color: var(--gold);
}
.mv .sub-title.lead{
  font-size: 24px;;
}
.mv .sub-title.main{
  font-size: 28px;
}
.mv .sub-title.main span{
  position: relative;
  padding: 0 20px;
}
.mv .sub-title.main span::before,
.mv .sub-title.main span::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--gold);
}
.mv .sub-title.main span::before {
  top: -10px;
}

.mv .sub-title.main span::after {
  bottom: -10px;
}
.mv .title-box{
  justify-content: flex-start;
  align-items: center;
}
.mv .title-box h1.main-title{
  font-size: 70px;
  font-weight: 500;
  margin-right: 60px;
  margin-bottom: 30px;
}

/* title
--------------------------------------------- */
section.front-section .section-header{
  margin-bottom: 100px;;
}
.section-header .section-sub-title{
  text-align: center;
  font-size: 32px;;
  font-weight: normal;
}

/* =Layout front-page
--------------------------------------------- */
section.front-section{
  padding: 100px 0;
}

/* =News
--------------------------------------------- */
section.front-section.news,
section.page-section.TransparentImages{
  position: relative;
}
section.front-section.news:after,
section.page-section.TransparentImages:after{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background-image: url(./img/news-section_bg.png);
  background-size: cover;
  background-repeat: no-repeat;
  z-index: -1;
}
.news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #181818;
  border-bottom: 1px solid #181818;
  margin-bottom: 65px;;
  padding: 60px 0px;;
}

.news-item {
  display: grid;
  grid-template-columns: 20% 15% 60%;
  gap: 20px;
  align-items: center;
  padding: 14px 0;
}

.news-item:last-child {
  border-bottom: none;
}

.news-date {
  color:var(--brand);
  font-size: 20px;
}

.news-category a,
.news-category--none {
  display: inline-block;
  padding: 6px 10px;
  background: var(--brand);
  color:var(--white);
  font-size: 16px;
}

.news-link {
  color: #111;
  font-size: 16px;
}

.news-link:hover {
  color: #0a6cff;
  text-decoration: underline;
}

.news-more {
  margin-top: 12px;
}

.front-section-lead{
  text-align: center;
  margin: 100px auto;
}

/* =Information section
--------------------------------------------- */
.front-section.information {
  --bg: #2f3f55;     /* 上側の濃い色 */
  --cut: #3a4a60;    /* 下側の切り替え色 */
  position: relative;
  background: var(--bg);
  color: var(--white);
  overflow: hidden;
}

.front-section.information::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: var(--cut);
  clip-path: polygon(0 69%, 100% 0%, 100% 100%, 0 100%);
}

.information img.information-image{
  margin-bottom: 30px;
}

.clinic-hours {
  padding: 0;
  display: inline-block;
}

.hours-table {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 520px;
  background: #fff;
  box-shadow: 0 0 0 1px var(--border) inset;
}

.hours-table thead th {
  background: var(--brand);
  color: #fff;
  font-weight: 600;
  letter-spacing: .15em;
  text-align: center;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}

.hours-table .time {
  font-weight: 600;
  color: #233;
  text-align: left;
  padding: 18px 24px;
  border-bottom: 1px solid var(--row-border);
  white-space: nowrap;
}

.hours-table td {
  text-align: center;
  vertical-align: middle;
  padding: 18px 16px;
  border-bottom: 1px solid var(--row-border);
}

.hours-table tbody tr:last-child th,
.hours-table tbody tr:last-child td {
  border-bottom: none;
}

.dot {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--brand);
  vertical-align: middle;
}

.star {
  color: var(--brand);
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
}

.slash {
  color: var(--brand);
  font-weight: 700;
  opacity: .85;
}

.hours-note {
  margin: 10px 2px 0;
  font-size: 16px;
  color: var(--white);
}

@media (max-width: 600px) {
  .hours-table thead th {
    padding: 10px 12px;
    letter-spacing: .08em;
  }

  .hours-table .time {
    padding: 14px 16px;
  }

  .hours-table td {
    padding: 14px 12px;
  }

  .dot {
    width: 12px;
    height: 12px;
  }
}

.information .clinic-address{
  margin-top: 50px;
}
.information .clinic-address .box-button{
  text-align: left;
}

.clinic-address p {
  font-size: 18px;
  position: relative;
  padding-left: 30px;
}

.clinic-address p:before {
  content: "";
  position: absolute;
  left: 0;
  background-image: url(./img/icon-map.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 25px;
  height: 25px;
  display: inline-block;
}

/* =Access cards
--------------------------------------------- */
.access-ways {
  padding: 24px 0;
}

.access-ways__inner {
  align-items: stretch;
}

.access-card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  padding: 0 16px;
  border-right: 1px solid #fff;
  z-index: 1;
}

.access-ways__inner .access-card:last-child {
  border-right: none;
}

.access-card__circle {
  width: var(--circle-size);
  height: var(--circle-size);
  border-radius: 50%;
  background: var(--white);
  color: var(--brand);
  display: grid;
  place-items: center;
  gap: 0px;
  margin-bottom: 18px;
  padding: 25px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .08);
}

.access-card__icon {
  width: var(--icon-size);
  height: var(--icon-size);
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(8%) sepia(41%) saturate(1633%) hue-rotate(196deg) brightness(94%) contrast(109%);
}

.access-card__circle h3 {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--brand);
}

.access-card__note {
  margin: 0;
  color: var(--white);
  line-height: 1.8;
  font-size: 14px;
}

.access-card--car .access-card__note {
  margin-top: 0.5em;
}

.g-map_container iframe {
  width: 100%;
}

/* =CTA (phone / web reservation) */

.information .cta{
  margin-top: 60px;
}
.cta {
  padding: 24px 0;
  position: relative;
  z-index: 2;
}

.cta__inner {
  width: 680px;
  margin: 0 auto;
  display: flex;
  gap: var(--cta-gap);
  justify-content: space-between;
}

.cta-block {
  width: 320px;
}

.cta-block__title {
  margin: 0 0 12px;
  letter-spacing: .12em;
  opacity: .9;
  margin-bottom: 5px;
}

.cta-tel {
  width: 320px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0 16px;
  border: 1.5px solid currentColor;
  text-decoration: none;
  transition: background .2s ease, transform .05s ease;
}

.cta-tel__icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

.cta-tel__number {
  font-size: clamp(22px, 3vw, 26px);
  font-weight: 600;
  letter-spacing: .03em;
}

.cta-tel:hover {
  background: rgba(255,255,255,.06);
}

.cta-tel:active {
  transform: translateY(1px);
}

.cta-web {
  width: 320px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0 18px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(    90deg,    #504633 0%,    #837353 30%,    #837353 70%,    #504633 100%  );
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 4px 12px rgba(0,0,0,.15);
  transition: filter .2s ease, transform .05s ease;
}

.cta-web__icon {
  width: 23px;
  height: 23px;
  object-fit: contain;
}

.cta-web__label {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: .04em;
  white-space: nowrap;
}

.cta-web__arrow {
  width: 0;
  height: 0;
  border-left: 7px solid #fff;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
}

.cta-web:hover {
  filter: brightness(1.05);
}

.cta-web:active {
  transform: translateY(1px);
}

.cta--dark {
  color: #fff;
}

.cta--dark .cta-block__title {
  color: #fff;
  text-align: center;
}

.cta--dark .cta-tel {
  color: rgba(255,255,255,.9);
}

@media (max-width: 820px) {
  .cta__inner {
    flex-direction: column;
    gap: 24px;
    width: 100%;
  }

  .cta-block {
    width: 100%;
  }

  .cta-tel,
  .cta-web {
    width: 100%;
    justify-content: center;
  }

  .cta-block__title {
    text-align: center;
  }
}

.box-button.button-line {
  text-align: center;
  margin-top: 15px;;
}
.box-button.left-align{
  text-align: left;
}

.box-button.button-line .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  padding: 15px 30px;
  color: #ffffff;
  font-size: 17px;
  letter-spacing: .04em;
  text-decoration: none;
  border: 1.5px solid rgba(255,255,255,.85);
  background-color: transparent;
  position: relative;

  transition: background .25s ease, color .25s ease, border-color .25s ease;
}

/* ▼ 右向き三角（塗りつぶし） */
.box-button.button-line .button::after {
  content: "";
  width: 8px;
  height: 8px;
  margin-left: 12px;
  background: #ffffff;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  /* ↑ 塗りつぶし三角形 */
  display: inline-block;
}

/* hover */
.box-button.button-line .button:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,1);
}

/* active */
.box-button.button-line .button:active {
  transform: translateY(1px);
}

.box-button.button-line.bg-blue-dark a{
  background-color: var(--bg-blue-dark);
  border:1px solid var(--bg-blue-dark)
}
.box-button.button-line.bg-blue-dark a:hover{
  background-color: transparent;
  color: var(--bg-blue-dark);
  border-color: var(--bg-blue-dark);
}
.box-button.button-line.bg-blue-dark .button:hover::after{
  background:var(--bg-blue-dark);
}

/* =Message section
--------------------------------------------- */
section.front-section .message-box{
  position: relative;
  background-color: var(--bg-blue-dark);
  color: var(--white);
  padding: 60px 60px 100px 60px;
}
.message-box::after{
  content: "KATSUTA DENTAL CLINIC";
  display: block;
  clear: both;
  position: absolute;
  bottom:0;
  right:0;
  color: rgba(255, 255, 255, 0.15);
  font-size: 55px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  z-index: 0;
}
section.front-section .message-box .flex-box{
  display: grid;
  grid-template-columns: 60% 37%;
  align-items: center;
}
section.front-section .message-box .message-text p{
  font-size: 20px;
  line-height: 1.8;
}
section.front-section .message-box .message-text p{
  margin-bottom: 1em;
}
section.front-section .message-box .message-text p:first-child{
  margin-bottom:70px;;
}

.front-section.message .section-content {
  position: relative;
  z-index: 1; /* keep content above the decorative gradients */
  overflow: visible;
}

.front-section.message .section-content::before,
.front-section.message .section-content::after {
  content: "";
  position: absolute;
  width: 260px; /* visual length of the accent */
  height: 120px; /* visual height of the accent */
  pointer-events: none;
  z-index: 0; /* behind the section content */
  filter: blur(0.6px);
}

.front-section.message .section-content::before {
  left: 0;
  top: 0;  /* place near the top-left */
  background: linear-gradient(90deg,
  rgba(70,70,59,1) 0%,
  rgba(183,156,111,1) 45%,
  rgba(143,116,79,0) 100%
  );
}

.front-section.message .section-content::after {
  right: 0;
  bottom: 0; /* place near the bottom-right */
  background: linear-gradient(270deg,
  rgba(70,70,59,1) 0%,
  rgba(183,156,111,1) 45%,
  rgba(143,116,79,0) 100%
  );
}
.front-section.about .about-content{
  width: 70%;
}
.front-section.about .about-content .title-box{
  display: flex;
  align-items: center;
  margin-bottom: 20px;
  gap: 20px;;
  border-bottom: 1px solid var(--gold);
}
.front-section.about .about-content h3{
  font-size: 30px;
  color: var(--gold);
  font-weight: 500;
}
.front-section.about .about-content .title-box span{
  font-size: 70px;
  color: var(--gold);
}
.front-section.about .about-content p{
  font-size: 18px;
  line-height: 2;
  margin-bottom: 50px;
}
.about-content-box{
  position: relative;
  overflow: hidden;
  margin-bottom: 100px;;
}
section.about .section-content .about-content-box:last-child{
  margin-bottom: 0;;
}

/* 金の縦グラデーション装飾（添付画像に合わせた再現版） */
.about-content-box::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:80px;            /* 太さ：調整可 */
  height:100%;
  background: linear-gradient(to top, rgba(92, 80, 58, 0.00) 0%, #837253 100%);
  opacity:0.95;
  pointer-events:none;
}

/* 偶数行だけ反対側（必要な場合） */
.section-content .about-content-box:nth-of-type(even)::before{
  left:auto;
  right:0;
  background: linear-gradient(to bottom, rgba(92, 80, 58, 0.00) 0%, #837253 100%);
}
section.about .section-content .about-content-box::after{
  content: '';
  background-repeat: no-repeat;
  background-size: cover;
  width: 34vw;
  height: 20vw;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 2;
}
section.about .section-content .about-content-box:nth-of-type(even)::after{
  left: 0;
  right: auto;
}
section.about .section-content .about-content-box:nth-of-type(1)::after{
  background-image: url(./img/image_top-about-01.png);
}
section.about .section-content .about-content-box:nth-of-type(2)::after{
  background-image: url(./img/image_top-about-02.png);
}
section.about .section-content .about-content-box:nth-of-type(3)::after{
  background-image: url(./img/image_top-about-03.png);
}

/* =Implant Price section
--------------------------------------------- */
.front-section.implant .heading-block{
  margin-bottom: 60px;;
}

/* 見出し本体 */
.gold-fade-title{
  margin: 0 auto;
  width: 100%;
  padding: 16px 32px;
  color: #fff;
  font-size: clamp(18px, 2.6vw, 28px);
  font-weight: 500;
  letter-spacing: .08em;
  text-align: center;
  display: inline-block;        /* タイトル幅のみの帯にする */
  border-radius: 4px;
  position: relative;
  isolation: isolate;
  /* 中央が最も濃く、左右が透明にフェードする横グラデーション */
  background:
  linear-gradient(
  90deg,
  rgba(140,116,79,0) 0%,     /* 左端 透明（= 背景になじむ）*/
  rgba(140,116,79,.45) 12%,  /* うっすら金 */
  var(--gold-center) 50%,    /* 中央は最も明るい金 */
  rgba(140,116,79,.45) 88%,  /* うっすら金 */
  rgba(140,116,79,0) 100%    /* 右端 透明 */
  );
  /* ほんの少しだけ縦方向の陰影を足すと金属感が出る */
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), inset 0 -1px 0 rgba(0,0,0,.08);
}

.implant .section-content .inner-1200{
  padding: 100px;
}
.implant .section-content .inner-1200 .implant-content:first-child .flex-box{
  grid-template-columns: 50% 40%;
  display: grid;
}
.implant .section-content .implant-content p{
  font-size: 20px;
  line-height: 1.8;
}
.implant .section-content .implant-content{
  margin-bottom: 100px;;
}
.implant .section-content .implant-content:first-child{
  margin-bottom: 120px;
}

.implant .section-content .implant-content .price-section {
  margin: 60px auto;
  padding: 40px;
  color: #fff;
  position: relative;
  border: 1.5px solid var(--gold);
}
.implant .section-content .implant-content .price-section.price-section--margin{
  margin-bottom: 10px;
  padding: 40px 80px;
}
.implant .section-content .implant-content .price-section.white{
  border-color: var(--white);
}
.implant .section-content .implant-content .price-section.white .price-section__title{
  color: var(--white);
}
.implant .section-content .implant-content .price-section.white{
  text-align: center;
}

/* ───── タイトルが枠線に割り込む表現 ───── */
.implant .section-content .implant-content .price-section__title {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 24px;
  background:var(--bg-blue-02);
  color: var(--gold);
  font-size: clamp(20px, 2.8vw, 30px);
  letter-spacing: .08em;
}

/* ───── 表示本体 ───── */
.implant .section-content .implant-content .price-box {
  display: flex;
  align-items: center;
  gap: 28px;
}

/* 左の小さいラベルBOX */
.implant .section-content .implant-content .price-box__label {
  background: var(--white);
  color: var(--brand);
  padding: 14px 18px;
  font-size: 16px;
  letter-spacing: .06em;
  border-radius: 3px;
  white-space: nowrap;
}

.implant .section-content .implant-content .price-box__content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 24px;
}

.implant .section-content .implant-content .price-box__text {
  margin: 0;
  letter-spacing: .04em;
}

.implant .section-content .implant-content .price-box__price {
  margin: 0;
  font-size: 54px;
  font-weight: 600;
  color: var(--gold);
  white-space: nowrap;
}
.implant .section-content .implant-content .price-box__price span {
  font-size: 20px;
  font-weight: 400;
  color: #fff;
  margin-left: 6px;
}
.implant .section-content .implant-content .price-box__price span span{
  font-size:18px;
}

/* 注意書き */
.implant .section-content .implant-content .price-note {
  font-size: 14px;
  line-height: 1.8;
  opacity: .85;
}

.implant .section-content .implant-content .box-button.button-line{
  margin-top: 60px;
}

.price-section .payment-box .flex-box p{
  background-color: var(--white);
  color: var(--brand);
  padding: 5px 45px;
}

/* =Q&A section
--------------------------------------------- */
/* 全体 */
.faq-accordion{ width:min(1100px,92%); margin:40px auto; }

/* 見出しボタン（h3相当） */
.acc-heading{ margin:0; }
.acc-trigger{
  all:unset;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:16px;
  width:100%;
  color:#fff;
  background: var(--brand);         /* タイトル背景は紺 */
  cursor:pointer;
  position:relative;
}

/* 左のQバッジ：金→紺の水平グラデーション */
.acc-q{
  display:grid; place-items:center;
  width:56px; height:56px;
  font-weight:700;
  font-size:22px;
  border-radius:3px;
  background: linear-gradient(90deg, var(--brand) 0%, var(--gold) 100%);
}

/* タイトル文字 */
.acc-title{
  font-size: clamp(16px, 2.4vw, 20px);
  line-height:1.6;
  letter-spacing:.02em;
  padding-block:4px; /* 視覚中央調整 */
  font-weight: 500;
}

/* 右端の＋／− 記号 */
.acc-sign{
  width:28px; height:28px; position:relative; margin-left:12px;
}
.acc-sign::before, .acc-sign::after{
  content:""; position:absolute; inset:0; margin:auto;
  width:18px; height:2px; background:#fff; border-radius:1px;
}
.acc-sign::after{ transform:rotate(90deg); }   /* これで「＋」に */
.acc-item.is-open .acc-sign::after{ display:none; } /* 開いたら「−」へ */

/* パネル（回答） */
.acc-panel{
  overflow:hidden;
  transition:max-height .35s ease;
  padding: 22px 24px;
  background-color: var(--white);
}

/* 左のAマークと本文 */
.acc-answer{ display:grid; grid-template-columns:auto 1fr; gap:12px 18px; align-items:start; }
.acc-a{
  font-size:32px; line-height:1; color: var(--gold);
  font-weight:600; width:26px; padding-top:6px;
}
.acc-body{
  line-height:2; color:#4a4a4a;
}

/* アコーディオン開閉のスライド感（max-heightで簡易） */
.acc-panel{ overflow:hidden; transition:max-height .35s ease; }
.acc-item:not(.is-open) .acc-panel{
  max-height:0;
  padding-top:0; padding-bottom:0;
  border:none; box-shadow:none;
}
.acc-item.is-open .acc-panel{ max-height:800px;
  background-color: var(--white);
}

/* アイテム間の余白 */
.acc-item{ margin:28px 0; }

/* ベース（前回と同じ） */
.bg-blue-02{
  --bg:#304356;   /* セクション背景 */
  --sq:#1A2F43;   /* 四角の色 */
  --size:220px;   /* 四角サイズ */
  position:relative;
  background:var(--bg);
  overflow:hidden;
}
.bg-blue-02 > *{ position:relative; z-index:1; }

/* ずらし配置：::before と ::after に2個ずつ置く */
.bg-blue-02.has-corner-squares.irregular::before,
.bg-blue-02.has-corner-squares.irregular::after{
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background:
  linear-gradient(var(--sq), var(--sq)) no-repeat,
  linear-gradient(var(--sq), var(--sq)) no-repeat;
  background-size: var(--size) var(--size), var(--size) var(--size);
  opacity:.95;
}

/* ::before = 左上／右下（少しはみ出しを含む例） */
.bg-blue-02.has-corner-squares.irregular::before{
  background-position:
  left 24px  top 56px,          /* 四角①：左上寄り */
  right -28px bottom 48px;      /* 四角②：右下（少し外へ） */
}

/* ::after = 右上／左下（高さをずらす） */
.bg-blue-02.has-corner-squares.irregular::after{
  background-position:
  right 86px top 140px,         /* 四角③：右上をやや内側＆下へ */
  left -46px  bottom 120px;     /* 四角④：左下（外へ＆少し上） */
}

/* 画面幅で縮める（必要に応じて調整） */
@media (max-width: 960px){
.bg-blue-02{ --size:160px; }
.bg-blue-02.has-corner-squares.irregular::before{
  background-position:
  left 16px  top 40px,
  right -22px bottom 36px;
}
.bg-blue-02.has-corner-squares.irregular::after{
  background-position:
  right 56px top 110px,
  left -36px bottom 90px;
}
}
@media (max-width: 640px){
.bg-blue-02{ --size:120px; }
.bg-blue-02.has-corner-squares.irregular::before{
  background-position:
  left 10px  top 28px,
  right -16px bottom 24px;
}
.bg-blue-02.has-corner-squares.irregular::after{
  background-position:
  right 36px top 80px,
  left -28px bottom 64px;
}
}

/* ===== レイアウト（セクション内だけの金配色を定義） ===== */
.cta-mini{
  --gold-stop-0:#504633;  /* 0%  */
  --gold-stop-1:#837353;  /* 30% */
  --gold-stop-2:#837353;  /* 70% */
  --gold-stop-3:#504633;  /* 100% */
  display:flex; gap:15px; align-items:center;
}

/* ===== 共通ボタン ===== */
.cta-mini .btn{
  width:230px; height:70px;
  display:flex; align-items:center; gap:10px;
  position:relative; padding:0 16px 0 14px;
  color:#fff; text-decoration:none; overflow:hidden;
  box-sizing:border-box;
}
.cta-mini .btn__icon{ flex:0 0 auto; object-fit:contain; }
.cta-mini .btn::after{
  content:""; position:absolute; right:3px; bottom:3px;
  width:16px; height:16px; background:#fff;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

/* ===== 電話（黒枠ボタン） ===== */
.cta-mini .btn--tel{
  border:1px solid var(--white);
}
.cta-mini .btn--tel .btn__text{ display:flex; flex-direction:column; line-height:1.2; }
.cta-mini .btn--tel small{ font-size:11px; opacity:.9; letter-spacing:.08em; }
.cta-mini .btn--tel strong{
  font-weight:700; font-size:24px; letter-spacing:.02em; margin-top:4px;
}

/* ===== WEB予約（金グラデボタン） ===== */
.cta-mini .btn--web{
  background: linear-gradient(
  90deg,
  var(--gold-stop-0) 0%,
  var(--gold-stop-1) 30%,
  var(--gold-stop-2) 70%,
  var(--gold-stop-3) 100%
  );
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
  justify-content: center;
}
.cta-mini .btn--web .btn__label{
  font-size:18px; font-weight:600; letter-spacing:.04em; white-space:nowrap;
}

/* ===== ホバー（任意） ===== */
.cta-mini .btn--web:hover{ filter:brightness(1.06); }

footer.site-footer{
  padding: 120px 0;
}
footer.site-footer .footer-title{
  border-bottom: 1px solid var(--white);
  width: 100%;
  padding-bottom: 30px;
  margin-bottom: 30px;
}
footer.site-footer .footer-title p {
  color: var(--white);
  width: 50%;
}
.footer-information .flex-box.access{
  margin-bottom: 25px;
}
.footer-information .flex-item .flex-box.access .flex-item{
  background-color: var(--white);
  padding: 10px 15px;
  margin-right: 10px;
  gap: 10px;
}
.footer-information .flex-item .flex-box.access .flex-item:last-child{
  margin-right: 0;
}
.footer-information .flex-item .flex-box.access .flex-item p{
  margin-bottom: 0;
  color: var(--brand);
}
footer .cta-mini .btn{
  width: 50%;
  justify-content: center;
}
footer .hours-table thead th{
  background-color: #fff;
  color: #333;
  font-weight: normal;
  border-bottom:1px solid var(--row-border);
}
footer .hours-table .time,
footer .hours-table td{
  color: #333;
  font-weight: normal;
  padding: 14px 20px;
}
footer .hours-table th,
footer .hours-table td{
  font-size: 15px;
}
.footer-nav-section{
  margin-top: 100px;
  margin-bottom: 30px;;
}
.footer-nav-section nav.footer-nav-01{
  margin-bottom: 20px;
}
.footer-nav-section nav ul{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 20px;
  justify-content: center;
}
.footer-nav-section nav ul li a{
  color: var(--white);
  font-size: 15px;
  text-decoration: none;
}

p.copy-right{
  text-align: center;
  font-weight: normal;
}

/* ヘッダー全体（背景写真＋白ベール） */
.page-custom .page-header {
  position: relative;
  min-height: 400px;
  height: 45vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-image: url(./img/image-header-first.png);
}
.page-custom.page-first .page-header{
  background-image: url(./img/image-header-first.png);
}
.page-custom.page-feature .page-header{
  background-image: url(./img/image-header-feature.png);
}
.page-custom.page-staff .page-header{
  background-image: url(./img/image-header-staff.png);
}
.page-custom.page-facilities .page-header{
  background-image: url(./img/image-header-facilities.png);
}
.page-custom.page-implant .page-header{
  background-image: url(./img/image-header-implant.png);
}
.page-custom.page-price .page-header{
  background-image: url(./img/image-header-price.png);
}
.page-custom.page-case .page-header{
  background-image: url(./img/image-header-case.png);
}
.page-custom.page-access .page-header{
  background-image: url(./img/image-header-access.png);
}
/* 背景を白く飛ばすレイヤー */
.page-custom .page-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.85);
}

.page-section .section-header{
  margin-bottom: 100px;
}

/* ---------------------
タイトル幅 1100px
--------------------- */
.page-custom .page_title-box {
  position: relative;
  width: 100%;
  padding: 30px 0;
  text-align: center;
  z-index: 1;
}

/* 上線・下線（1100px 幅に合わせる） */
.page-custom .page_title-box::before,
.page-custom .page_title-box::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;           /* ←1100pxに合わせてラインも1100px */
  height: 1px;
  background-color: #837353;
}

.page-custom .page_title-box::before {
  top: 0;                /* 上線 */
}

.page-custom .page_title-box::after {
  bottom: 0;             /* 下線 */
}

/* タイトルテキスト */
.page-custom .page_title-box h1 {
  margin: 0;
  font-size: 64px;
  font-weight: 500;
  letter-spacing: 0.2em;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .page-custom .page-header {
    min-height: 200px;
  }
  .page-custom .page_title-box {
    padding: 26px 0;
  }
  .page-custom .page_title-box h1 {
    font-size: 30px;
    letter-spacing: 0.14em;
  }
}

.page-head-content{
  padding: 50px 0;
}
.breadcrumb {
  font-size: 14px;
  margin: 12px 0 24px;
}
.breadcrumb ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
}
.breadcrumb__item + .breadcrumb__item::before {
  content: ">";
  margin: 0 6px;
  opacity: .6;
}
.breadcrumb__item a {
  text-decoration: none;
}
.breadcrumb__item--current {
  color: #999;
}

.page_lead{
  text-align: center;
}
.page-section{
  padding: 120px 0;
}
section.page-section.message .message-box .title-doctor{
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  max-width: 400px;
  width: 100%;
  text-align: center;
  padding: 15px 0;
  margin-bottom: 60px;
}
section.page-section.message .message-box .title-doctor p{
  margin-bottom: 0;
  font-size: 24px;
}
section.page-section.message .message-box .title-doctor h3{
  font-size: 35px;
  font-weight: 500;
}
section.page-section.message .message-box .title-doctor h3 span{
  font-size: 24px;
  padding-right: 1em;
}
/* ------------------------------
page-first
------------------------------ */
.page-section.worries{
  background-color: #E8E8E8;
  overflow: hidden;
  position: relative;
}

/* 左の三角形（青） */
.page-section.worries::before {
  content: "";
  position: absolute;
  top: 15%;
  left: 0;
  height: 65%;
  width: 35%;
  background: rgba(48, 67, 86, 0.60);
  clip-path: polygon(0 0, 0 100%, 0% 100%, 100% 50%);
}

/* 右の三角形（青） */
.page-section.worries::after {
  content: "";
  position: absolute;
  top: 15%;
  right: 0;
  height: 65%;
  width: 35%;
  background: rgba(48, 67, 86, 0.60);
  clip-path: polygon(0% 50%, 0% 50%, 100% 0, 100% 100%);
}

.page-section.worries .grid-box {
  padding: 60px 20px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 90px 60px;
  position: relative;
  z-index: 1;
}

/* ------------------------------
カード本体
------------------------------ */

.page-section.worries .grid-item {
  background: #ffffff;
  position: relative;
  padding: 80px 60px 60px;
}

/* ------------------------------
番号バッジ（丸）
------------------------------ */

.page-section.worries .card__number {
  position: absolute;
  top: -45px;
  left: 50%;
  transform: translateX(-50%);
  width: 90px;
  height: 90px;
  background: #3E4B59;
  color: #fff;
  border-radius: 50%;
  font-size: 50px;
  letter-spacing: 0.08em;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}

.page-section.worries .grid-item h3 {
  margin: 0 0 40px;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.7;
  padding-bottom: 6px;
  letter-spacing: 0.08em;
  color: #181818;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}

.page-section.worries .grid-item p {
  margin: 0;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #181818;;
}

@media (max-width: 768px) {
  .page-section.worries .grid-box {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 20px 20px 40px;
  }

  .page-section.worries .card__number {
    width: 76px;
    height: 76px;
    font-size: 24px;
    top: -38px;
  }
}

.triangle-down {
  width: 120px;
  height: 0;
  margin: 0 auto;
  border-left: 60px solid transparent;
  border-right: 60px solid transparent;
  border-top: 35px solid;
}
.triangle-down.gold{
  border-top-color:#857455;
}

.clinic-box {
  position: relative;
  max-width: 1000px;
  margin: 40px auto;
  padding: 36px 50px;
  background: #ffffff;
  text-align: center;
  color: #8a6b3c;
  font-family: "Noto Serif JP", serif;
  box-sizing: border-box;
}

.clinic-box::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  right: 10px;
  bottom: 10px;
  border: 1px solid #b9a98a;
  pointer-events: none;
  box-sizing: border-box;
}

/* 1行目 */
.clinic-box__line1 {
  margin: 0 0 8px;
  font-size: 24px;
  letter-spacing: 0.12em;
}

/* 2行目 */
.clinic-box__line2 {
  margin: 0;
  font-size: 24px;
  letter-spacing: 0.12em;
  line-height: 1.9;
}

/* 下のベージュマーカー（蛍光ペン風） */
.marker-gold {
  background: linear-gradient(to bottom, transparent 65%, #EAE1D5 65%, #EAE1D6 100%);
  line-height: 2.2;
  padding: 0 .2em;
}
p.worries-bottom{
  color: #181818;
  font-size: 26px;
  text-align: center;
}

.page-section-lead {
  text-align: center;
  margin: 100px auto;
}
.page-section .section-content .policy-content{
  margin-bottom: 100px;
}
.page-section .section-content .policy-content:last-child{
  margin-bottom: 0;
}
.page-section .flex-box.policy-content .policy-text{
  width: 50%;
}
.page-section .flex-box.policy-content .policy-image{
  width: 45%;
}
.page-section .section-content .policy-content .policy-text h3{
  position: relative;
  color: var(--gold);
  font-size: 36px;
  font-weight: 500;
  margin-bottom: 40px;
  letter-spacing: 3.36px;
}
.page-section .section-content .policy-content .policy-text h3:before{
  content: 'POLICY 01';
  position: absolute;
  color: rgba(255, 255, 255, 0.14);
  font-size: 58px;
  top: -35%;
  font-weight: normal;
}
.page-section .section-content .policy-content:nth-of-type(2) .policy-text h3:before{
  content: 'POLICY 02';
}
.page-section .section-content .policy-content:nth-of-type(3) .policy-text h3:before{
  content: 'POLICY 03';
}
.page-section .section-content .policy-content .policy-text h4{
  font-size: 28px;
  color: #FFF;
  font-weight: 500;
  margin-bottom: 40px;
  letter-spacing: 3.36px;
}
.page-section.flow .flow_content-box .flow_content{
  background-color: var(--brand);
  color: #FFF;
  padding: 40px;
  border:3px solid var(--gold);
  z-index: 2;
}
.page-section.flow .flow_content-box .flow_content .flex-box .flow_image{
  width: 40%;
}
.page-section.flow .flow_content-box .flow_content .flex-box .flow_text{
  width: 55%;
}
.page-section.flow .flow_content-box .flow_content .cta--dark{
  padding: 0;
  margin-top: 40px;
}
.bg-gradient_gold{
  width: 100%;
  padding: 16px 32px;
  color: #fff;
  font-size: clamp(18px, 2.6vw, 28px);
  font-weight: 500;
  letter-spacing: .08em;
  text-align: center;
  display: inline-block;
  background: linear-gradient(90deg,
  rgba(131, 114, 83, 1) 0%,
  rgba(92, 80, 58, .2) 100%);
}
.page-section.flow .flow_content-box .flow_content h3{
  margin-bottom: 30px;;
}
.page-section.flow .section-content .flow_content-box{
  position: relative;
  padding: 70px 0;
}
.page-section.flow .section-content .flow_content-box:before{
  content: 'Reserve';
  position: absolute;
  color: rgba(0, 12, 76, 0.2);
  font-size: 108px;
  z-index: -1;
  top: -7%;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
}
.page-section.flow .section-content .flow_content-box:after{
  content: '';
  position: absolute;
  width: 100%;
  height: 50%;
  bottom: 0;
  background-color: #2F4255;
  z-index: -1;
}
.page-section.flow .section-content .flow_content-box.reception:before{
  content: 'Reception';
}
.page-section.flow .section-content .flow_content-box.counseling:before{
  content: 'Counseling';
}
.page-section.flow .section-content .flow_content-box.inspection:before{
  content: 'Inspection';
}
.page-section.flow .section-content .flow_content-box.explanation:before{
  content: 'Explanation';
}
.page-section.flow .section-content .flow_content-box.payment:before{
  content: 'Payment';
}

.vertical-dots {
  width: 200px;
  height: 100px;
  background: #000C4C;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  border-radius: 4px;
  margin: 80px auto;
}

.vertical-dots span {
  width: 6px;
  height: 6px;
  background: #fff;
  border-radius: 50%;
}

.page-section.strength .section-content .title-box{
  text-align: center;
  border-bottom: 1px solid var(--brand);
  max-width: 850px;
  margin: 0 auto 40px;
}
.page-section.strength .section-content > .title-box h3{
  text-align: center;
  color: var(--brand);
  font-size: 32px;
  font-weight: normal;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-section.strength .section-content > .title-box h3 span{
  font-size: 72px;
  font-weight: 500;
  padding-right: 20px;
}
.page-section.strength .section-content .strength_content-wrap{
  margin-bottom: 100px;
}
.page-section.strength .section-content .strength_content-wrap .strength_content-box{
  margin-bottom: 40px;
}
.page-section.strength .section-content .strength_content-wrap .strength_content-box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  height: 100%;
  background: linear-gradient(to top, rgba(0, 12, 76, 0.00) 0%, #000C4C 100%);
  opacity: 0.95;
  pointer-events: none;
}
.page-section.strength .section-content .strength_content-wrap .strength_content-box:nth-of-type(even)::before {
  right: 0;
  left: auto;
  background: linear-gradient(to bottom, rgba(0, 12, 76, 0.00) 0%, #000C4C 100%);
}
.page-section.strength .section-content .strength_content-wrap .strength_content-box .flex-box{
  min-height: 380px;;
}
.page-section.strength .section-content .strength_content-wrap .strength_content-box h4{
  border-left: 5px solid var(--brand);
  font-size: 18px;
  padding-left: 0.5em;
  margin-bottom: 30px;
  font-weight: 500;
}
.page-section.strength > .section-content:nth-of-type(3) .strength_content-box:nth-of-type(1)::after{
  background-image: url('./img/page-feature_01.png');
}
.page-section.strength > .section-content:nth-of-type(3) .strength_content-box:nth-of-type(2)::after{
  background-image: url('./img/page-feature_02.png');
}

/* 2つ目の section-content（div 4番目） */
.page-section.strength > .section-content:nth-of-type(4) .strength_content-box:nth-of-type(1)::after{
  background-image: url('./img/page-feature_03.png');
}
.page-section.strength > .section-content:nth-of-type(4) .strength_content-box:nth-of-type(2)::after{
  background-image: url('./img/page-feature_04.png');
}

/* 3つ目の section-content（div 5番目） */
.page-section.strength > .section-content:nth-of-type(5) .strength_content-box:nth-of-type(1)::after{
  background-image: url('./img/page-feature_05.png');
}
.page-section.strength > .section-content:nth-of-type(5) .strength_content-box:nth-of-type(2)::after{
  background-image: url('./img/page-feature_06.png');
}
}
.heading-center-line {
  position: relative;
  display: inline-block;
  padding-bottom: 20px;
}
.heading-center-line::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 120px;
  height: 2px;
  background-color: var(--gold);
  opacity: 0.7;
}
.page-section.reason .section-content h3{
  position: relative;
  font-size: 34px;
  text-align: center;
  margin-bottom: 30px;
  font-weight: 600;
  color: var(--gold);
  padding-bottom: 25px;
}
.page-section.reason .section-content .grid-box{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
}
.page-section.reason .section-content img{
  width: 100%;
  margin-bottom: 50px;
}
.page-section.reason .section-content p:last-child{
  margin-bottom: 0;
}

.page-section.doctor .section-content .flex-item.left.doctor-text{
  width: 55%;
}
.page-section.doctor .section-content .flex-item.right.doctor-image{
  width: 40%;
}
.page-section.doctor .section-content .flex-item.left,
.page-section.doctor .section-content .flex-item.right{
  width: 48%;
}
.appears-triangle {
  position: relative;
  display: inline-block;
  overflow: visible;
}
.appears-triangle::after {
  content: "";
  position: absolute;
  right: -15px;
  bottom: -15px;
  width: 140px;
  height: 140px;
  background: #999EB7;
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
  z-index: -1;
}
.page-section.doctor .section-content .doctor-text h3{
  border-left: 3px solid var(--brand);
  color: var(--brand);
  padding-left: 0.5em;
  font-size: 24px;
  font-weight: 500;
  display: inline-block;
  position: relative;
  padding-bottom: 8px;
  margin-bottom: 60px;
  width: 100%;
}
.page-section.doctor .section-content .doctor-text h3:after{
  content: "";
  position: absolute;
  left: 0;
  width: 120%;
  height: 1px;
  bottom: -10px;
  background-color: var(--brand);
  z-index: 2;
}
.page-section.doctor .section-content .doctor-text span{
  background-color: var(--brand);
  display: inline-block;
  color: #FFF;
  padding: 5px 30px;
  font-size: 22px;
  margin-bottom: 30px;
}
.heading-horizontal-line {
  position: relative;
  text-align: center;
  font-size: 22px;
  font-weight: normal;
  color: #fff;
  padding: 10px 30px;
  display: inline-block;
  background-color: var(--brand);
}
.heading-horizontal-line::before,
.heading-horizontal-line::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 120px;   /* 左右の線の長さ 調整可 */
  height: 1px;
  background-color: #304356; /* 線の色 */
}
.heading-horizontal-line::before {
  left: -120px;   /* 見出しからどれだけ離すか調整 */
}
.heading-horizontal-line::after {
  right: -120px;
}
.page-section.doctor .section-content .career-content{
  margin-top: 50px;
}
.page-section.doctor .section-content .career-content .title-box{
  margin-bottom: 30px;
  overflow: hidden;
}
.page-section.doctor .section-content .career-content table{
  border-collapse: separate;
  border-spacing: 0px 10px;
}
.page-section.doctor .section-content .career-content table th{
  font-weight: normal;
  padding-right: 30px;
  white-space: nowrap;
}
.image-triangle-double {
  position: relative;
  display: inline-block;
  overflow: visible;
}
.image-triangle-double::before {
  content: "";
  position: absolute;
  left: -15px;
  top: -15px;
  width: 140px;
  height: 140px;
  background: #999EB7;
  clip-path: polygon(0 0, 0 100%, 100% 0);
  z-index: -1;
}
.image-triangle-double::after {
  content: "";
  position: absolute;
  right: -15px;
  bottom: -15px;
  width: 140px;
  height: 140px;
  background: #999EB7;
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
  z-index: -1;
}
.implant-certificate.flex-box{
  margin: 140px auto;
  gap: 80px;
  justify-content: center;
}
.page-section.doctor .section-content .career-content ul{
  list-style: none;
  padding-left: 0;
}
.page-section.staff .section-content .doctor-text h3{
  color: var(--gold);
  border-left-color: var(--gold);
}
.page-section.staff .section-content .doctor-text h3:after{
  background-color: var(--gold);
}
.page-section.staff .section-content .doctor-text span,
.page-section.staff .heading-horizontal-line,
.page-section.staff .heading-horizontal-line::before,
.page-section.staff .heading-horizontal-line::after{
  background-color: #837253;
}
.page-section.staff .appears-triangle::after{
  background:rgba(131,114,83,0.4);
}

.grid-box.gallery-grid{
  gap:80px 50px;
}
.grid-box.gallery-grid img{
  margin-bottom: 50px;;
}
.grid-box.gallery-grid h3{
  font-size: 34px;
  color: var(--brand);
  font-weight: normal;
  margin-bottom: 30px;
  position: relative;
  padding-bottom: 20px;
}
.grid-box.gallery-grid h3:after{
  background-color: var(--brand);
}
.device .grid-box.gallery-grid h3{
  color: var(--gold);
}
.device .grid-box.gallery-grid h3.font-26{
  font-size: 26px;;
}
.device .grid-box.gallery-grid h3:after{
  background-color: var(--gold);
}

/* 全体コンテナ */
.treatment-section {
  padding: 40px 0;
}

.treatment-inner {
  position: relative;
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
}

/* 左右の濃紺のバー（奥に見えるやつ） */

.treatment-inner::before {
  left: 0;
}

.treatment-inner::after {
  right: 0;
}

/* メインカード */
.treatment-card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 3fr;
  background-color: #ffffff;
  border: 1px solid #cbbda1;
  box-sizing: border-box;
  z-index: 1;
}

/* 画像側 */
.treatment-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* テキスト側 */
.treatment-content {
  padding: 30px 40px 30px;
  line-height: 1.75;
}

/* 中央の金色グラデーション見出し */
.treatment-heading {
  position: relative;
  width: 340px;
  margin: 0 auto 30px;
  padding: 16px 80px;
  display: inline-block;
  color: #ffffff;
  font-size: 20px;
  letter-spacing: 0.12em;
  text-align: center;
  background: linear-gradient(90deg, #504633 0%, #837253 30%, #837253 70%, #504633 100%);
}
.treatment-heading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: auto;
  right: -108%;
  width: 108%;
  height: 1px;
  background-color: #cbbda1;
}

/* 左の丸い番号バッジ */
.treatment-number {
  position: absolute;
  left: -50px;
  top: 50%;
  transform: translate(-50%, -50%); /* 左の紺バーに半分かぶるように */
  width: 85px;
  height: 85px;
  border-radius: 50%;
  background-color: #BCA375;  /* ゴールド */
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.treatment-number span {
  color: #fff;
  font-size: 35px;
  letter-spacing: 0.12em;
}

/* テキスト */
.treatment-content p {
  margin: 0;
  font-size: 15px;
  color: #333333;
}

/* レスポンシブ（簡易） */
@media (max-width: 900px) {
  .treatment-inner::before,
  .treatment-inner::after {
    display: none; /* スマホでは奥のバーを消すなど調整お好みで */
  }

  .treatment-card {
    grid-template-columns: 100%;
  }

  .treatment-content {
    padding: 40px 20px 30px;
  }

  .treatment-number {
    top: 0;
    transform: translate(0, -50%);
    left: 20px;
  }
}
/* ------------------------------------------
左右の濃紺の四角形（カードの背面）
------------------------------------------- */

.treatment-card::before,
.treatment-card::after {
  content: "";
  position: absolute;
  top: 35px;
  bottom: 35px;
  background: #304356;
  z-index: -1;
}

/* 左側 */
.treatment-card::before {
  left: -50px;
  width: 50px;;
}

/* 右側 */
.treatment-card::after {
  width: 30px;
  right: -30px;        /* カードから少し外にずらす */
}
.page-implant .about .flex-box{
  justify-content: space-between;
}
.page-implant .about .flex-box .about-text{
  width: 50%;
}

.img-shadow {
  position: relative;
  display: inline-block;
}

.img-shadow img {
  display: block;
  position: relative;
  z-index: 2;
}

/* 右下の影（ずらし四角） */
.img-shadow::after {
  content: "";
  position: absolute;
  right: -15px;   /* ずらし量：横 */
  bottom: -15px;  /* ずらし量：縦 */
  width: 100%;
  height: 100%;
  background: rgba(0, 12, 76, 0.4);  /* ご希望のカラー */
  z-index: 1;
}

.page-section.merit {
  position: relative;
  overflow: hidden; /* はみ出す部分を隠す */
}

/* 左右に共通するストライプ装飾 */
.page-section.merit::before,
.page-section.merit::after {
  content: "";
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
  opacity: 1;
}
.page-section.merit::before {
  left: 0px;
  background-image: url('./img/rectangle-gold-01.png'),
  url('./img/rectangle-gold-02.png');
  background-position: 0px 30%, 0px 75%;
  background-size: 10vw auto, 25vw auto;
  background-repeat: no-repeat;
}
.page-section.merit::after {
  right: 0px;
  background-image: url('./img/rectangle-gold-01.png'),
  url('./img/rectangle-gold-02.png');
  background-position: 0px 30%, 0px 75%;
  background-size: 10vw auto, 25vw auto;
  background-repeat: no-repeat;
  transform: scaleX(-1); /* 反転させて左右対称に */
}
.page-implant .merit .flex-box{
  justify-content: center;
  align-items: stretch;
}
.page-implant .merit .flex-box .flex-item{
  width: 30%;
  padding: 20px 25px;
  background-color: #fff;
  margin-right: 3%;
  margin-bottom: 3%;
  border:3px solid var(--gold)
}
.page-implant .merit .flex-box .flex-item:nth-of-type(3),
.page-implant .merit .flex-box .flex-item:last-child{
  margin-right: 0;
}
.page-implant .merit .flex-box .flex-item img{
  margin-bottom: 25px;;
  width: 100%;
}
.page-implant .merit .flex-box .flex-item h3{
  position: relative;
  color: #827252;
  font-size: 22px;
  margin-bottom: 25px;
  padding-bottom: 10px;
}
.page-implant .merit .flex-box .flex-item h3 span{
  font-size: 18px;
  display: block;
}
.page-implant .merit .flex-box .flex-item h3:after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 120px;
  height: 2px;
  background-color: #827252;
  opacity: 0.7;
}
.page-implant .merit .flex-box .flex-item .heading-center-line::after{
  width: 80px;
}
.page-implant .merit .flex-box .flex-item p{
  color: #333;
}
.page-implant .merit .flex-box .flex-item p:last-child{
  margin-bottom: 0;;
}

.page-section.structure .flex-box{
  align-items: stretch;
}
.page-section.structure .flex-box .flex-item{
  width: 32%;
  overflow: hidden;
}
.page-section.structure .flex-box .flex-item .structure-number{
  text-align: center;
  display: block;
  font-size: 64px;
  color: #837253;
}
.page-section.structure .flex-box .flex-item .structure-card{
  min-height: 600px;
  border: 2px solid #837253;
}
.page-section.structure .flex-box .flex-item img{
  width: 100%;
}
.page-section.structure .flex-box .flex-item .text-box{
  background-color: #fff;
  color:#181818;
  padding: 30px 15px;;
}
.page-section.structure .flex-box .flex-item .text-box h3{
  font-size: 24px;
  text-decoration: underline;
  margin-bottom: 30px;
  font-weight: 500;
}
.page-section.structure .flex-box .flex-item .text-box p:last-child{
  margin-bottom: 0;
}
.structure-card {
  position: relative;
  background: #fff;
  border: 1px solid #e0e0e0;
  overflow: hidden;
}
.structure-card::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 50%;
  height: 25%;
  background: rgba(62, 75, 89, 0.05);
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
  pointer-events: none;
}

.page-section.flow .flow-content_item{
  background-color: #fff;
  padding: 20px 40px;
  position: relative;
  border: 2px solid var(--gold);
  border-left: 10px solid var(--gold);
}
.page-section.flow .flow-content_item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 160px;
  height: 160px;
  background: rgba(0, 12, 76, 0.05);
  clip-path: polygon(0 0, 0% 100%, 100% 0);
  pointer-events: none;
}
.page-section.flow .flow-content_item::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 160px;
  height: 160px;
  background: rgba(0, 12, 76, 0.05);
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
  pointer-events: none;
}
.page-section.flow .flow-content_item .flow-content_image{
  width: 30%;
}
.page-section.flow .flow-content_item .flow-content_text{
  width: 65%;
}
.page-section.flow .flow-content_item .flow-content_text .title-box{
  justify-content: flex-start;
  border-bottom: 1px dotted #1C234C;
  margin-bottom: 30px;;
}
.page-section.flow .flow-content_item h3{
  color: #1C234C;
  font-size: 24px;;
}
.page-section.flow .flow-content_item span{
  background-color: #1C234C;
  color: #fff;
  font-size: 20px;
  padding: 5px 20px;
  margin-right: 1em;
}
.page-section.flow .flow-content_item p{
  color: #1C234C;
}
.page-section.flow .flow-content_item p:last-child{
  margin-bottom: 0;
}
.page-section.flow .triangle-down{
  width: 40px;
  border-left: 30px solid transparent;
  border-right: 30px solid transparent;
  border-top: 20px solid;
  border-top-color: #BCA375;
  margin: 20px auto;
}
.page-section.flow .section-content .inner-1100{
  position: relative;
}
.page-section.flow .section-content .inner-1100:before{
  content: "";
  position: absolute;
  top: 100px;
  bottom: 100px;
  background: #233445;
  z-index: -1;
  width: 100%;
  baseline-shift: 90%;
}

table.price-table{
  border-collapse: collapse;
  border:1px solid var(--brand)
}
table.price-table tr,
table.price-table thead{
  border-bottom: 1px solid #D8D8D8;
}
table.price-table th{
  background-color: var(--brand);
  color: #fff;
  padding: 20px;
  border-right: 1px solid #D8D8D8;
  font-size: 22px;
  white-space: nowrap;
}
table.price-table td{
  padding: 20px;
  border-right: 1px solid #D8D8D8;
  padding: 20px;
  font-size: 16px;
}
table.price-table td ul{
  padding-left: 20px;
}
table.price-table tr td:last-child,
table.price-table tr th:last-child,
table.price-table thead th:last-child,
table.price-table tr:last-child{
  border: none;
}

/* 金色帯の共通スタイル */
.page-section.price-list {
  position: relative;
  overflow: hidden; /* はみ出し防止 */
}

.page-section.price-list::before,
.page-section.price-list::after,
.page-section.price-list .gold-line-left::before,
.page-section.price-list .gold-line-right::before {
  content: "";
  position: absolute;
  height: 70px;
  background: linear-gradient(90deg, rgba(92,80,58,0) 0%, #837253 100%);
  transform: rotate(0.5turn); /* 反転して左右対称に */
  z-index: 0;
}

/* ---- 左側：大きい帯 ---- */
.page-section.price-list::before {
  width: 22vw;
  top: 52%;   /* 好みで調整 */
  left: 0;
  transform: rotate(180deg);
}

/* ---- 左側：小さい帯 ---- */
.page-section.price-list .gold-line-left::before {
  width: 16vw;      /* 小さい帯 */
  top: 565px;
  left: 0;
  transform: rotate(180deg);
  background: linear-gradient(90deg, rgba(92,80,58,0) 0%, #837253 100%);
}

/* ---- 右側：小さい帯 ---- */
.page-section.price-list::after {
  width: 16vw;
  top: 52%;
  right: 0;
  transform: rotate(0deg);
}

/* ---- 右側：大きい帯 ---- */
.page-section.price-list .gold-line-right::before {
  width: 22vw;
  top: 565px;
  right: 0;
  transform: rotate(0deg);
  background: linear-gradient(90deg, rgba(92,80,58,0) 0%, #837253 100%);
}

.page-section.payment .payment-box{
  padding: 40px;
  margin-bottom: 40px;
  border: 1px solid var(--brand);
}
.page-section.payment .inner-900 .payment-box:last-child{
  margin-bottom: 0;
}
.page-section.payment .payment-box h3{
  font-size: 24px;
  margin-bottom: 30px;;
  text-align: center;
  font-weight: normal;
}
.page-section.payment .payment-box img{
  margin: 0 auto;
}

.page-section.deduction .deduction_content-box{
  margin-bottom: 50px;;
}
.page-section.deduction .section-content .inner-850 .deduction_content-box:last-child{
  margin-bottom: 0;
}
.page-section.deduction .deduction_content-box h3{
  font-size: 36px;
  font-weight: 500;
  color: var(--gold);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.page-section.deduction .calculation p{
  margin-bottom: 0;
  font-size: 16px;
}
.page-section.deduction .calculation p.caution{
  margin-top: 5px;
}
.page-section.deduction .calculation p.title{
  margin-bottom: 15px;
  margin-top: 35px;;
}
.page-section.deduction .calculation p.formula{
  color: #2F4255;
  text-align: center;
  font-size: 30px;
  font-family: Arial, Helvetica, sans-serif;
}
.page-section.deduction .calculation .grid-box{
  grid-template-columns: 24% 6% 23% 6% 15% 6% 20%;
  padding: 40px 50px;
  background-color: #fff;
  align-items: center;
}
.page-section.deduction .calculation .grid-box div{
  text-align: center;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 20px;;
}
.page-section.deduction .calculation p.price span{
  font-size: 28px;;
}

.page-section.deduction {
  position: relative;
  overflow: hidden; /* はみ出し防止 */
}

.page-section.deduction::before,
.page-section.deduction::after,
.page-section.deduction .gold-line-left::before,
.page-section.deduction .gold-line-right::before {
  content: "";
  position: absolute;
  width: 5vw;
  height: 15vw;
  background: linear-gradient(to bottom, rgba(92, 80, 58, 0) 0%, #837253 100%);
  z-index: 0;
}

/* ---- 左側：大きい帯 ---- */
.page-section.deduction::before {
  top: 24%;   /* 好みで調整 */
  left: 0;
  transform: rotate(180deg);
}

/* ---- 左側：小さい帯 ---- */
.page-section.deduction .gold-line-left::before {
  left: 0;
  transform: rotate(0deg);
  bottom: 0;
}

/* ---- 右側：小さい帯 ---- */
.page-section.deduction::after {
  top: 24%;
  right: 0;
  transform: rotate(180deg);
}

/* ---- 右側：大きい帯 ---- */
.page-section.deduction .gold-line-right::before {
  right: 0;
  transform: rotate(0deg);
  bottom: 0;
}
.page-section.deduction .gold-line-left,
.page-section.deduction .gold-line-right{
  position: absolute;
  bottom: 0;
  width: 100%;
}

.page-section.message .section-content{
  margin-top:100px;
  position:relative;
}
.page-section.message .section-content .message_content-box{
  max-width: 600px;
}
.page-price .page-section.message .section-content:after{
  content: '';
  position: absolute;
  background-image: url(./img/image-message.png);
  background-repeat: no-repeat;
  background-size: cover;
  width: 40vw;
  height: 30vw;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.page-section.message {
  position: relative;
  overflow: hidden; /* はみ出し防止 */
}
.page-section.message .blue-line{
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.page-section.message .blue-line::before,
.page-section.message .blue-line::after {
  content: "";
  position: absolute;
  width: 55vw;
  height: 10vw;
  background: linear-gradient(to right, rgba(0, 12, 76, 0.7) 0%, rgba(0, 12, 76, 0.45) 47%, #FFF 100%);
  z-index: 0;
}
/* ---- 左側 ---- */
.page-section.message .blue-line::before {
  left: -35vw;
  transform: rotate(0deg);
  bottom: 0;
}
/* ---- 右側 ---- */
.page-section.message .blue-line::after {
  right: 0;
  transform: rotate(180deg);
  top: -40px;
}
.page-section.message .message_content-box h3{
  font-size: 36px;
  color: var(--brand);
  font-weight: normal;
  margin-bottom: 60px;
  line-height: 1.5;
}
.page-section.message .message_content-box p{
  margin-bottom: 2em;
}
.page-section.message .message_content-box p:last-child{
  margin-bottom: 0;
}

/* 症例紹介ページ */
.case-item{
  margin-bottom: 90px;
}
.case-content-box .case-item:last-child{
  margin-bottom: 0;
}
.case-item h3{
  font-size: 32px;
  color: var(--brand);
  text-align: center;
  position: relative;
  font-weight: 500;
  margin-bottom: 60px;
}
.case-item h3:after{
  content: '';
  border-bottom: 1px solid var(--gold);
  position: absolute;
  width: 60px;
  height: 1px;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
}

.ba-inner {
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
}

/* カード共通 */
.ba-card {
  width: 360px;
}

/* 上の帯（ラベル） */
.ba-label {
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  letter-spacing: 0.06em;
  color: #ffffff;
}

/* Before の帯：紺 */
.ba-label-before {
  background-color: #000C4C;
}

/* After の帯：金グラデーション */
.ba-label-after {
  background: linear-gradient(90deg, #837253 0%, #CFB585 50%, #837253 100%);
}

/* 画像部分 */
.ba-photo img {
  display: block;
  width: 100%;
  height: auto;
}

/* 中央の金色三角（右向き） */
.ba-arrow {
  width: 30px;
  height: 120px;
  background: var(--gold);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.case .case-detail{
  margin-top: 50px;
}
.case .case-detail table{
  border-collapse: collapse;
  border: 1px solid var(--brand);
  border: 1px solid #394858;
  width: 100%;
  margin-bottom: 50px;
}
.case .case-detail table tr th{
  background-color: var(--brand);
  color: #fff;
  padding: 20px;
  border-bottom: 1px solid #fff;
  font-size: 22px;
  white-space: nowrap;
}
.case .case-detail table tr td{
  padding: 20px;
  border-bottom: 1px solid #394858;
  font-size: 16px;
}

.case-coming-soon{
  position: relative;
}
.case-coming-soon:before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    z-index: 1;
}
.case-coming-soon:after{
    content: "Coming Soon";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-size: 36px;
    z-index: 2;
}


/* アクセス・診療時間 */
.overview-content-box{
  position: relative;
  padding: 60px;
}
.overview-content-box:after{
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: #3a4a60;
  clip-path: polygon(0 69%, 100% 0%, 100% 100%, 0 100%);
}
.overview-content-box .clinic-detail{
  margin-bottom: 80px;
}
.overview-content-box h3.title{
  border-left: 2px solid var(--gold);;
  border-right: 2px solid var(--gold);;
  padding: 0 40px;
  display: inline-block;
  font-size: 32px;
  color: var(--gold);
  margin-bottom: 40px;
  font-weight: 500;
}
.overview-content-box .clinic-detail ul{
  padding-left: 0;
}
.overview-content-box .clinic-detail ul li{
  list-style: none;
  border-bottom: 1px solid #fff;
  padding-bottom: 10px;
  margin-bottom: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 0 10px;
  font-size: 20px;
  justify-content: flex-start;
  align-items: center;
}
.overview-content-box .access-card{
  padding: 0 30px;
}
.overview-content-box .access-card__circle{
  background-color:var(--brand);
}
.overview-content-box .access-card__icon{
  filter: none;
}
.overview-content-box .access-card__circle h3{
  color: #fff;
}
.overview-content-box .clinic-detail .flex-right img{
  margin-bottom: 20px;
}
.overview-content-box .clinic-detail .flex-right .flex-box img{
  margin-bottom: 0;
}
.overview-content-box .opening.hours .clinic-hours{
  width: 100%;
}
.overview-content-box .opening.hours .clinic-hours .hours-table{
  margin: 0 auto;
}
.overview-content-box .opening.hours p.hours-note{
  text-align: center;
  margin-top: 20px;
}

.page-section.map-section{
  position: relative;
}
.page-section.map-section::before,
.page-section.map-section::after,
.page-section.map-section .blue-square{
  content: "";
  position: absolute;
  width: 20vw;
  height: 20vw;
  background: rgba(26, 47, 67, 0.80);
}
.page-section.map-section::before{
  top: 10%;
  left: 0;
}
.page-section.map-section::after{
  bottom: 2%;
  left: 0;
}
.page-section.map-section .blue-square{
  top: 50%;
  right: 0;
}
.access-root{
  background-color: #fff;
  position: relative;
  margin-top: 100px;
  padding: 90px 50px;
}
.access-root .title-box{
  text-align: center;
  position: absolute;
  top: -30px;
  left: 0;
  right: 0;
  margin: auto;
}
.access-root .title-box h2{
  font-size: 30px;
  background: linear-gradient(270deg, #504633 -5.5%, #837253 28.43%, #837253 72.71%, #504633 105.79%);
  display: flex;
  width: 410px;
  text-align: center;
  justify-content: center;
  gap: 20px;
  padding: 10px 0;
  margin: 0 auto;
  font-weight: normal;
}
.access-root .grid-box{
  grid-template-columns: 30% 30% 30%;
  gap: 5%;
}
.access-root .grid-box p{
  color: #000;
  font-size: 16px;
  margin-bottom: 0;
}

/* メインビジュアルのバッジ */
.mv-badges {
  display: flex;
  gap: 40px;
  justify-content: center;
  padding: 20px 0;
}

.mv-badge {
  position: relative;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0px;
  background: linear-gradient(135deg, #5C503A 0%, #837253 30%, rgba(92, 80, 58, 0.9) 90%, #706147 100%);
  color: #fff;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 500;
}

/* 🔹 外側の薄い 1px のゴールドリング（疑似要素で実装） */
.mv-badge::before {
  content: "";
  position: absolute;
  inset: -8px; /* 外側に少し広げる */
  border-radius: 50%;
  border: 1px solid #837253;
}

.mv-badge p{
  font-size: 17px;
  margin-bottom: 0;
}

.sp-box{
  display: none;
}

:root{
  --brand:#000C4C;
  --white:#fff;
  --border:rgba(255,255,255,.45);
}

/* ========= PC/SP 表示切替（重要） ========= */
.header-pc{ display:block; }
.sp-menu-btn{ display:none; }
.sp-drawer{ display:none; }

@media (max-width: 850px){
.header-pc{ display:none; }          /* PCヘッダー中身をSPでは隠す */
.sp-menu-btn{ display:inline-flex; } /* SPボタンだけ出す */
}

/* ========= ヘッダーバー ========= */
header.site-header{
  background: var(--brand);
  color: #fff;
  position: relative;
  z-index: 1000;
  padding: 15px 15px;
}
.header-bar{
  align-items:center;
  justify-content:space-between;
}

/* ========= ハンバーガー ⇄ ×（同じボタン） ========= */
.sp-menu-btn{
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  cursor: pointer;
  align-items:center;
  justify-content:center;
}
.sp-menu-btn__icon{
  width: 26px;
  height: 18px;
  position: relative;
  display:block;
}
.sp-menu-btn__icon::before,
.sp-menu-btn__icon::after{
  content:"";
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  background:#fff;
  border-radius:2px;
  transition: transform .2s ease, top .2s ease, bottom .2s ease, opacity .2s ease;
}
.sp-menu-btn__icon::before{ top:0; }
.sp-menu-btn__icon::after{ bottom:0; }
.sp-menu-btn__icon{
  background: linear-gradient(#fff,#fff);
  background-size: 100% 2px;
  background-repeat: no-repeat;
  background-position: center;
  transition: background-size .2s ease, opacity .2s ease;
}

/* 開いてる時（aria-expanded=true）＝× */
.sp-menu-btn[aria-expanded="true"] .sp-menu-btn__icon{
  background-size: 0 2px; /* 真ん中線を消す */
}
.sp-menu-btn[aria-expanded="true"] .sp-menu-btn__icon::before{
  top: 8px;
  transform: rotate(45deg);
}
.sp-menu-btn[aria-expanded="true"] .sp-menu-btn__icon::after{
  bottom: 8px;
  transform: rotate(-45deg);
}

/* ========= SPドロワー（header_sp.pngの画面） ========= */
@media (max-width: 850px){

  .site-branding .logo img{
    height: 45px;
    width:auto;
    display:block;
  }

  .sp-drawer{
    display:block;
    position: fixed;
    inset: 0;
    background: var(--brand);
    z-index: 2000;
  }
.sp-drawer[hidden]{ display:none; }
.sp-drawer__inner{
  height: 100%;
  overflow: auto;
  padding: 15px 15px 15px;
}

/* 上部：ロゴ＋閉じる */
.sp-drawer__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom: 18px;
}
.sp-drawer__logo img{
  height: 45px;
  width:auto;
  display:block;
}

/* 白いタイトルボックス */
.sp-drawer__titlebox{
  text-align:center;
  padding: 14px 10px;
  margin: 10px 0 18px;
}
.sp-drawer__title{
  background-color: #fff;
  color: var(--brand);
  font-weight: 700;
  letter-spacing: .04em;
  padding: 10px;
}
.sp-drawer__time{
  margin-top: 8px;
  font-size: 14px;
}

/* メニュー：区切り線＋左右の > */
.sp-nav__list{
  list-style:none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(255,255,255,.35);
}
.sp-nav__list > li{
  border-bottom: 1px solid rgba(255,255,255,.35);
}
.sp-nav__list a{
  color:#fff;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding: 16px 6px;
  font-weight: 600;
  letter-spacing: .02em;
}
.sp-nav__list a::before{
  content: ">";
  opacity: .9;
  margin-right: 10px;
}

/* CTA */
.sp-cta{
  margin-top: 22px;
  display:grid;
  gap: 14px;
  justify-items:center;
}

/* TEL：枠＋右下三角 */
.sp-cta__tel{
  width: min(320px, 100%);
  height: 70px;
  border: 1px solid rgba(255,255,255,.7);
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  color:#fff;
  text-decoration:none;
  position: relative;
  padding: 10px 12px;
  box-sizing:border-box;
}
.sp-cta__tel::after{
  content:"";
  position:absolute;
  right: 0;
  bottom: 0;
  width: 10px;
  height: 10px;
  background:#fff;
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
}
.sp-cta__teltext{
  display:grid;
  line-height: 1.2;
}
.sp-cta__teltext small{
  font-size: 11px;
  opacity: .95;
}
.sp-cta__teltext strong{
  font-size: 20px;
  letter-spacing: .02em;
}

/* WEB：金グラデ＋右下三角 */
.sp-cta__web{
  width: min(320px, 100%);
  height: 70px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  color:#fff;
  text-decoration:none;
  position: relative;
  padding: 10px 12px;
  box-sizing:border-box;

  /* 添付の雰囲気：中央濃い・端うすい */
  background: linear-gradient(90deg,
  rgba(80,70,51,1) 0%,
  rgba(131,114,83,1) 45%,
  rgba(131,114,83,1) 55%,
  rgba(80,70,51,1) 100%
  );
}
.sp-cta__web::after{
  content:"";
  position:absolute;
  right: 0;
  bottom: 0;
  width: 10px;
  height: 10px;
  background:#fff;
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
  opacity: .95;
}
.sp-cta__weblabel{
  font-weight: 700;
  letter-spacing: .06em;
}

/* スクロール抑止 */
body.is-sp-menu-open{
  overflow: hidden;
  touch-action: none;
}
}

/* スマホメニューここまで */

body .page-template{
  padding: 60px 0;
}

/* Archive layout */
div.archive {
  padding: 40px 0 70px;
}

.archive-header {
  margin-bottom: 28px;
}

.archive-title {
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.35;
  margin: 0 0 10px;
}

.archive-description {
  color: rgba(0,0,0,.65);
  line-height: 1.9;
}

/* Grid */
.archive-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

/* Card */
.archive-card {
  background: var(--white);
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
  transition: transform .18s ease, box-shadow .18s ease;
}

.archive-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(0,0,0,.10);
}

.archive-card__thumb {
  display: block;
  position: relative;
  aspect-ratio: 16 / 9;
  background: #f3f6fa;
  overflow: hidden;
}

.archive-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.archive-card__thumb--placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background:
  linear-gradient(135deg, rgba(0,0,0,.06) 0%, rgba(0,0,0,.02) 45%, rgba(0,0,0,.06) 100%);
}

/* Body */
.archive-card__body {
  padding: 16px 16px 18px;
}

.archive-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.archive-card__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.archive-card__cat {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(0, 12, 76, .08);
  color: var(--brand);
  font-size: 12px;
  text-decoration: none;
  white-space: nowrap;
}

.archive-card__date {
  font-size: 12px;
  color: rgba(0,0,0,.55);
  white-space: nowrap;
}

/* Title */
.archive-card__title {
  font-size: 16px;
  line-height: 1.6;
  margin: 0 0 10px;
}

.archive-card__title a {
  color: #111;
  text-decoration: none;
}

.archive-card__title a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Excerpt */
.archive-card__excerpt {
  color: rgba(0,0,0,.70);
  line-height: 1.9;
  font-size: 14px;
}

.archive-card__excerpt p {
  margin: 0;
}

/* Pagination area */
.archive-pagination {
  margin-top: 34px;
}

/* Responsive */
@media (max-width: 1024px) {
.archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
div.archive { padding: 28px 0 54px; }
body .page-template{padding: 30px 0;}
.archive-grid { grid-template-columns: 1fr; }
.archive-card__body { padding: 14px 14px 16px; }
}

body.single main{
  padding: 60px 0;
}
body.single h1.entry-title{
  font-size: 28px;
  margin-bottom: 0.5em;
}
/* =========================
Single Post
========================= */
.single-wrap{
  padding: 40px 0 70px;
}

.single-header{
  margin-bottom: 22px;
  border-bottom: 1px solid rgba(0,0,0,.12);
  padding-bottom: 18px;
}

.single-title{
  font-size: clamp(22px, 4.2vw, 34px);
  line-height: 1.5;
  margin: 0 0 10px;
}

.single-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  font-size: 14px;
  color: rgba(0,0,0,.65);
}

.single-date{
  letter-spacing: .02em;
}

.single-cats{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.single-cat{
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 999px;
  font-size: 12px;
  text-decoration: none;
  color: rgba(0,0,0,.75);
  transition: opacity .2s ease, background-color .2s ease;
}
.single-cat:hover{
  opacity: .85;
}

.single-eyecatch{
  margin: 16px 0 0;
}
.single-eyecatch__img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

.single-content{
  font-size: 16px;
  line-height: 2;
  color: rgba(0,0,0,.85);
}
.single-content p{
  margin: 0 0 1.4em;
}
.single-content h2{
  font-size: clamp(20px, 3.2vw, 26px);
  margin: 2.2em 0 .9em;
  padding-left: 12px;
  border-left: 4px solid var(--brand, #000C4C);
}
.single-content h3{
  font-size: clamp(18px, 2.8vw, 22px);
  margin: 2em 0 .8em;
}
.single-content ul,
.single-content ol{
  margin: 0 0 1.4em 1.2em;
}
.single-content a{
  color: var(--brand, #000C4C);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Tags */
.single-tags{
  margin: 28px 0 0;
  font-size: 14px;
  color: rgba(0,0,0,.65);
}
.single-tags a{
  color: var(--brand, #000C4C);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* =========================
Related Posts
========================= */
.related-posts{
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid rgba(0,0,0,.12);
}

.related-title{
  font-size: 20px;
  margin: 0 0 16px;
  color: rgba(0,0,0,.85);
}

.related-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.related-card{
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  transition: transform .15s ease, box-shadow .15s ease;
}
.related-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}

.related-thumb{
  display: block;
  background: #f3f5f7;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.related-thumb__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.related-thumb__placeholder{
  display: block;
  width: 100%;
  height: 100%;
}

.related-body{
  padding: 12px 14px 14px;
}

.related-meta{
  font-size: 12px;
  color: rgba(0,0,0,.6);
  margin-bottom: 6px;
}

.related-card__title{
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}
.related-card__title a{
  color: rgba(0,0,0,.88);
  text-decoration: none;
}
.related-card__title a:hover{
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Responsive */
@media (max-width: 900px){
.related-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
.single-wrap{ padding: 28px 0 50px; }
.related-grid{ grid-template-columns: 1fr; }
}

/* Column Cards */
.p-columnCards{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
}

.p-columnCards__item{
  margin: 0;
}

.p-columnCards__link{
  display: block;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}

.p-columnCards__link:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

.p-columnCards__thumb{
  aspect-ratio: 4 / 3;
  background: #f6f6f6;
  overflow: hidden;
}

.p-columnCards__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.p-columnCards__body{
  padding: 14px 16px 16px;
}

.p-columnCards__date{
  display: block;
  font-size: 12px;
  color: #666;
  margin-bottom: 10px;
}

.p-columnCards__title{
  font-size: 15px;
  line-height: 1.55;
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.p-columnCards__miniBtn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  padding: 8px 12px;
  border: 1px solid #bfc6cf;
  color: #243041;
}
.p-columnCards__miniBtn:after{
  content: "";
  width: 8px;
  height: 8px;
  margin-left: 12px;
  background: #2F4255;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  display: inline-block;
}

.front-section.column .box-button.button-line{
  margin-top: 60px;
}

.front-section.column .box-button.button-line .button{
  border-color: #2F4255;
  background-color: #2F4255;
}
/* big button */
.p-columnCards__moreWrap{
  margin-top: 34px;
  display: flex;
  justify-content: center;
}

.p-columnCards__moreBtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 320px;
  max-width: 520px;
  width: 100%;
  padding: 16px 20px;
  border-radius: 10px;
  background: #2f3b4b;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: .02em;
  transition: opacity .18s ease, transform .18s ease;
}

.p-columnCards__moreBtn:hover{
  opacity: .92;
  transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 1024px){
  .p-columnCards{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (max-width: 640px){
  .p-columnCards{
    grid-template-columns: 1fr;
    gap: 16px;
    max-width: 250px;
    margin: 0 auto;
  }
  .p-columnCards__moreBtn{
    min-width: 0;
  }
}

@media (max-width: 768px) {
  body.single main{
    padding: 30px 0;
  }
  body.single h1.entry-title{
    font-size: 22px;
  }
}


@media screen and (min-width: 1100px) and (max-width: 1150px) {
  .site-branding{
      text-align: center;
      width: 100%;
      margin-bottom: 3vw;
  }
  .site-branding img{
    margin: 0 auto;
  }
  .header-pc{
    margin: 0 auto;
  }
}

@media screen and (min-width: 800px) and (max-width: 1100px) {
  .pc-box{
    display: none;
  }
  .sp-box{
    display: block;
  }
  .inner-850,
  .inner-900,
  .inner-950,
  .inner-1000,
  .inner-1100,
  .inner-1150,
  .inner-1200{
    margin: 0 20px;
  }
  header.site-header .inner-1200{
    padding: 0;
  }
  p,
  a,
  li,
  th,
  td{
    font-size: 15px;;
  }
  .site-branding{
      text-align: center;
      width: 100%;
      margin-bottom: 3vw;
  }
  .header-pc{
    margin: 0 auto;
  }
.site-branding img{
  margin: 0 auto;
}
.mv {
    min-height: 0;
    height: auto;
    padding: 3vw;
}
.mv::after {
    width: 35vw;
    height: 45vw;
    max-height: 600px;
    max-width: 350px;
}
img.mv-implant{
    position: absolute;
    top: 30%;
    right: 22%;
}
.front-section.information .information-hours-box,
.information .clinic-access {
    width: 100%;
    margin-bottom: 60px;
}
.information img.information-image{
  margin: 0 auto 5vw;
}
.information-hours-box .clinic-hours{
  width: 100%;
}
.hours-table{
  margin: 0 auto;
}
.hours-note{
  text-align: center;
}
.information .clinic-address{
    margin-top: 5vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 3vw;
    align-items: center;
}
.information .clinic-address p{
  margin-bottom: 0;
}
.information .clinic-address .box-button{
  margin-top: 0;
}
.front-section.information .information-hours-box,
.information .clinic-access{
  margin-bottom: 5vw;
}
.information .cta{
  margin-top: 0;
}
section.front-section .message-box .flex-box{
  grid-template-columns: 50% 48%;
}
.front-section.message .section-content::before,
.front-section.message .section-content::after{
  z-index: -1;
}
.front-section.message .section-content::before{
top: -3vw;
}
.front-section.message .section-content::after{
  bottom: -3vw;
}

section.about .section-content .about-content-box::after{
  display: none;
}
.about-content-box .about_image-box img{
  margin: 0 auto;
}
.front-section.about .about-content {
    width: 100%;
    padding: 0 10vw;
}
.implant .section-content .inner-1200 .implant-content:first-child .flex-box {
    grid-template-columns: 45% 50%;
}
.implant .section-content .implant-content .price-box{
  justify-content: center;
}
.implant .section-content .implant-content .price-box__content{
  display: contents;
}
.implant .section-content .implant-content .price-box__text{
  font-size: 3vw;
}
.implant .section-content .implant-content .price-box__price{
  text-align: center;
}
.price-section .payment-box .flex-box p {
    font-size: 2vw;
    padding: 1vw 2vw;
}

.footer-information .clinic-hours-box,
.footer-information .clinic-hours{
  width: 100%;
}
.footer-information .hours-table{
  margin: 0 auto 1vw;
}
.footer-information .clinic-hours-box{
  margin-bottom: 3vw;
}
.footer_access-box{
    text-align: center;
    width: 60%;
    max-width: 500px;
    margin: 0 auto;
}
.footer-title .flex-box{
  justify-content: center;
  gap: 2vw;
}
footer.site-footer .footer-title p{
  width: auto;
}

.page-custom .page-header {
    min-height: auto;
    height: auto;
    padding: 10vw 2vw;
}
.page-custom .page_title-box h1{
  font-size: 5vw;
}

.page-section .section-content .policy-content{
  display: block;
  margin: 0 auto 6vw;
}
.page-section .section-content .policy-content img.sp-box{
  margin: 0 auto 3vw;
}
.page-section .section-content .policy-content .policy-text h3:before{
  top: -80%;
}
.page-section .flex-box.policy-content .policy-text{
  width: 80vw;
  margin: 0 auto 3vw;
}

.page-section.strength .section-content .strength_content-wrap .strength_content-box{
  margin-bottom: 6vw;
}
img.strength-image.right{
  margin: 0 0 0 auto;
}
img.strength-image.left{
  margin: 0 auto 0 0;
}
.page-section.strength .section-content .strength_content-wrap .strength_content-box .flex-box{
  min-height: 0;
  margin-top: 3vw;
}
.page-section.reason .section-content h3{
  font-size: 3vw;
}

.treatment-card::before,
.treatment-card::after{
  display: none;
}
.page-section.structure .flex-box .flex-item .text-box h3{
  font-size: 2vw;
}

.page-price .page-section.message .section-content:after{
  display: none;
}
.page-section.message .section-content .message_content-box{
  width: 100%;
  max-width: 100%;
  margin-top: 3vw;
}
.page-section.message .message_content-box h3{
    font-size: 3.5vw;
    margin-bottom: 3vw;
}

.page-section.doctor .section-content .doctor-text h3:after{
  width: 100%;
}
.page-access .access-information{
  width: 100%;
}
.page-access .clinic-detail .flex-right.sp-box{
  margin: 0 auto 3vw;
}
.page-access .align-center_sp{
  text-align: center;
}




}

@media (min-width: 900px){
  .inner-900{
    margin: 0 auto;
  }
}

@media (min-width: 850px){
  .inner-850{
    margin: 0 auto;
  }
}





@media (max-width: 800px) {
  .pc-box{
    display: none;
  }
  .sp-box{
    display: block;
  }

  body{
    padding-top: 75px;
  }

  p,
  a,
  li,
  th,
  td{
    font-size: 14px;;
  }

  .inner-850,
  .inner-900,
  .inner-950,
  .inner-1000,
  .inner-1100,
  .inner-1150,
  .inner-1200{
    padding: 0 20px;
  }

  .align-center_sp{
    text-align: center;
  }

  header.site-header{
    position: fixed;
    width: 100%;
    top: 0;
  }
  header.site-header .inner-1200{
    padding: 0;
  }

  .cta-mini .btn{
    width: 100%;
  }

  .mv{
    overflow: hidden;
    min-height: auto;
    height: auto;
    padding: 20px;
  }
  .mv::after {
    width: 55vw;
    height: 70vw;
    bottom: 50vw;
    right: -22vw;
    max-height: 100%;
    max-width: 100%;
  }
  .mv::before{
    position: absolute;
    content: '';
    background-image: url(./img/image_mv-implant.png);
    background-size: cover;
    background-repeat: no-repeat;
    width: 28vw;
    height: 28vw;
    right: 0;
    bottom: 43vw;
    z-index: 10;
  }
  .mv .inner-1200{
    padding: 0;
  }
  .mv .sub-title.lead{
    font-size: 5vw;
  }
  .mv .sub-title.main {
    font-size: 4.3vw;
    text-decoration: none;
    border-top: 1px solid var(--gold);
    border-bottom: 1px solid var(--gold);
    padding: 10px 5px;
    width: 60vw;
  }
  .mv .sub-title.main span{
    padding: 0;
  }
  .mv .sub-title.main span::before,
  .mv .sub-title.main span::after{
    display: none;
  }
  .mv .title-box{
    display: block;
    width: 100%;
  }
  .mv .title-box img.mv-implant{
    display: none;
  }
  .mv .title-box h1.main-title {
    font-size: 11.5vw;
    margin-right: 0;
    line-height: 1.5;
  }
  .mv-badge-box .flex-box{
    display: block;
  }
  .mv-badges{
    gap: 5vw;
  }
  .mv-badge{
    width: 25vw;
    height: 25vw;
  }
  .mv-badge p{
    font-size: 3vw;
  }

  section.front-section {
    padding: 50px 0;
  }
  .gradation-gold{
    font-size: 36px;
    margin-bottom: 0;
  }
  .section-header .section-sub-title{
    font-size: 15px;;
  }
  section.front-section .section-header{
    margin-bottom: 50px;
  }

  section.front-section.news .inner-850{
    padding: 0px;
  }
  .news-list{
    padding: 20px 0;
    margin-bottom: 30px;
  }
  .news-item{
    grid-template-columns: 23% 22% 55%;
    gap: 5px;
  }
  .news-date{
    font-size: 11px;
  }
  .news-category a,
  .news-category--none{
    font-size: 11px;
    padding: 10px 10px;
    line-height: 1;
  }
  .news-link{
    font-size: 14px;
  }

  .box-button.button-line .button{
    font-size: 15px;
    width: auto;
    height: auto;
    padding: 10px 20px;
  }

  .front-section.information .information-hours-box{
    width: 100%;
    margin-bottom: 60px;;
  }
  .information img.information-image.logo{
    width: 100px;
    margin: 0 auto 30px;
  }
  .clinic-hours{
    width: 100%;
  }
  .hours-note{
    font-size: 10px;
    text-align: center;
  }
  .information .clinic-address{
    display: grid;
    grid-template-columns: 60% 40%;
    margin-top: 10px;
    align-items: center;
  }
  .clinic-address p{
    font-size: 10px;
    padding-left: 20px;
    margin-bottom: 0;
  }
  .clinic-address p::before{
    width: 15px;
    height: 15px;
  }
  .information .clinic-address .box-button{
    margin-top: 0;
    text-align: center;
  }
  .information .clinic-address .box-button a{
    font-size: 13px;
    padding: 5px 10px;
  }
  .information .clinic-access{
    width: 100%;
  }
  .information .clinic-access .information-image{
    width: 250px;
    margin: 0 auto;
  }
  .access-ways__inner{
    gap: 0%;
  }
  .access-card{
    width: 30%;
    padding: 0;
    padding-right: 2.5%;
    padding-left: 2.5%;
  }
  .access-card:last-child{
    padding-right: 0;
  }
  .access-card__circle {
    width: 90px;
    height: 90px;
    padding: 10px;
  }
  .access-card__icon {
    width: 25px;
    height: 25px;
  }
  .access-card__circle h3{
    font-size: 10px;
  }
  .access-card__note{
    font-size: 10px;
  }
  .information .cta{
    margin-top: 0;
  }
  .information .cta--dark .cta-block__title{
    font-size: 14px;
  }
  .information .cta__inner{
    width: 80%;
    max-width: 275px;
  }
  .g-map_container iframe{
    max-height: 400px;
  }

  .page-section{
    padding: 60px 0;
  }
  .page-section .section-header{
    margin-bottom: 60px;
  }
  section.front-section .message-box{
    width: 85%;
    padding: 60px 20px;
  }
  section.front-section .message-box .flex-box{
    display: block;
  }
  section.front-section .message-box .message-image img{
    width: 60%;
    margin: 0 auto 30px;
  }
  section.front-section .message-box .message-text p{
    font-size: 14px;
    margin-bottom: 2em;
  }
  section.front-section .message-box .message-text p:first-child {
    margin-bottom: 1.5em;
  }
  .message-box::after{
    font-size: 5vw;
  }
  section.front-section .message-box .box-button.button-line{
    text-align: center;
  }
  section.front-section .message-box .box-button.button-line .button{
    width: 80%;
  }
  .front-section.message .section-content::before,
  .front-section.message .section-content::after {
    width: 200px;
    height: 45px;
    z-index: -1;
  }
  .front-section-lead{
    margin: 60px auto;
    width: 90%;
  }
  .front-section-lead p{
    font-size: 12px;
  }

  section.about .section-content .about-content-box::after{
    display: none;
  }
  .about-content-box{
    margin-bottom: 60px;
  }
  .about-content-box::before {
    width: 30px;
    height: 20%;
  }
  .about-content-box .about_image-box img{
    width: 85%;
    margin-right: 0;
    margin-left: auto;
  }
  .front-section.about .about-content{
    width: 90%;
    margin: 30px auto 0;
  }
  .front-section.about .about-content .title-box{
    padding-bottom: 8px;
  }
  .front-section.about .about-content .title-box span{
    font-size: 35px;
  }
  .front-section.about .about-content h3{
    font-size: 18px;
  }
  .front-section.about .about-content p{
    font-size: 14px;
    margin-bottom: 25px;;
  }
  .front-section.about .about-content .box-button.button-line,
  .implant .section-content .implant-content .box-button.button-line{
    text-align: center!important;
  }
  .front-section.about .about-content .box-button.button-line a,
  .implant .section-content .implant-content .box-button.button-line a{
    width: auto;
    padding: 10px 40px;
  }
  .section-content .about-content-box:nth-of-type(even)::before{
    background: linear-gradient(to top, rgba(92, 80, 58, 0.00) 0%, #837253 100%);
  }
  .section-content .about-content-box:nth-of-type(even) .about_image-box img{
    margin-left: 0;
    margin-right: auto;
  }

  .implant .section-content .implant-content:first-child{
    margin-bottom: 60px;
  }
  .implant .section-content .inner-1200 {
    padding: 30px 30px 50px;
    width: 90%;
  }
  .front-section.implant .heading-block{
    margin-bottom: 20px;
  }
  .gold-fade-title{
    padding: 10px 0;
  }
  .implant .section-content .inner-1200 .implant-content:first-child .flex-box {
    grid-template-columns: auto;
    display: block;
  }
  .implant .section-content .inner-1200 .implant-content:first-child .flex-box .flex-item{
    width: 100%;
  }
  .implant .section-content .flex-item.implant-image img{
    width: 70%;
    margin: 0 auto 20px;
  }
  .implant .section-content .implant-content p{
    font-size: 13px;
  }
  .implant .section-content .implant-content .box-button.button-line{
    margin-top: 20px;
  }
  .implant .section-content .implant-content .price-section,
  .implant .section-content .implant-content .price-section.price-section--margin{
    padding: 25px 25px 10px;
  }
  .implant .section-content .implant-content .price-box{
    gap: 10px;
  }
  .implant .section-content .implant-content .price-box__label{
    padding: 2px 7px;
    font-size: 11px;
  }
  .implant .section-content .implant-content .price-box__text{
    font-size: 13px;
  }
  .implant .section-content .implant-content .price-box__price{
    font-size: 30px;
  }
  .implant .section-content .implant-content .price-box__price span{
    font-size: 14px;
  }
  .implant .section-content .implant-content .price-box__price span span{
    font-size: 12px;
  }
  .implant .section-content .implant-content .price-note{
    font-size: 8px;
  }
  .implant .section-content .implant-content .price-section.white .price-section__title{
    min-width: 180px;
  }
  .implant .section-content .implant-content .price-section.white .payment-box p{
    font-size: 12px;
  }
  .implant .section-content .implant-content .price-section.white .payment-box .flex-box p{
    font-size: 8px;
    padding: 3px 5px;
  }
  .implant .section-content .implant-content{
    margin-bottom: 60px;
  }
  .implant .section-content .inner-1200 .implant-content:last-child{
    margin-bottom: 0;
  }
  .acc-trigger{
    gap: 10px;
  }
  .acc-q {
    width: 40px;
    min-height: 40px;
    height: 100%;
    font-size: 20px;
    border-radius: 0px;
  }
  .acc-title{
    letter-spacing: 0;
    font-size: 12px;
  }
  .acc-sign {
    width: 28px;
    height: 20px;
    margin-left: 10px;
  }
  .acc-panel{
    padding: 10px 10px;
  }
  .acc-body p{
    font-size: 12px;
  }

  .page-custom .page-header{
    height: 40vw;
    min-height: 120px;
  }
  .page-custom .page_title-box{
    padding: 15px 0;
    width: 90%;
  }
  .page-custom .page_title-box h1{
    font-size: 18px;
  }
  .page-head-content{
    padding: 20px 0;
  }
  .breadcrumb{
    margin: 10px auto 15px;
  }
  .breadcrumb a,
  .breadcrumb li{
    font-size: 12px;
  }
  .page_lead{
    width: 90%;
    margin: 0 auto;
  }
  .page_lead p{
    font-size: 10px;
    text-align: left;
  }

  .page-section.message .section-content{
    margin-top: 50px;
  }
  section.front-section .message-box .message-text p:first-child{
    font-size: 15px;
    margin-bottom: 10px;
  }
  section.page-section.message .message-box .title-doctor h3{
    font-size: 20px;
  }
  section.page-section.message .message-box .title-doctor h3 span{
    font-size: 15px;
  }
  section.page-section.message .message-box .title-doctor{
    margin-bottom: 30px;
  }

  .page-section.flow .section-content .flow_content-box:before{
    font-size: 36px;
  }
  .page-section.worries .card__number{
    width: 30px;
    height: 30px;
    font-size: 16px;
    top: -15px;
  }
  .page-section.worries .grid-item {
    padding: 30px 25px 30px;
  }
  .page-section.worries .grid-item h3{
    font-size: 14px;
    margin-bottom: 10px;
    text-align: center;
  }
  .page-section.worries .grid-item p{
    line-height: 1.75;
    font-size: 12px;
  }
  .triangle-down {
    width: 35px;
    border-left: 35px solid transparent;
    border-right: 35px solid transparent;
    border-top: 15px solid;
  }
  .clinic-box{
    padding: 20px 15px;
    margin: 40px 20px;
  }
  .clinic-box__line1,
  .clinic-box__line2{
    font-size: 14px;
    line-height: 1;
  }
  p.worries-bottom{
    font-size: 14px;
  }
  .page-section-lead{
    margin: 60px auto;
  }
  .page-section .flex-box.policy-content .policy-text{
    width: 100%;
    margin: 40px auto 20px;
  }
  .page-section .section-content .policy-content .policy-text h3{
    font-size: 22px;
    margin-bottom: 20px;
  }
  .page-section .section-content .policy-content .policy-text h3:before{
    font-size: 32px;
    top: -45%;
  }
  .page-section .section-content .policy-content .policy-text h4 {
    font-size: 16px;
    letter-spacing: 0;
    margin-bottom: 20px;
  }
  .page-section .flex-box.policy-content .policy-text p:last-child{
    margin-bottom: 0;
  }
  .box-button.button-line.center{
    text-align: center;
    width: 100%;
  }
  .box-button.button-line.center a{
    width: auto;
    padding: 10px 40px;
  }
  .page-section .section-content .policy-content{
    margin-bottom: 60px;
  }

  .page-section.flow .section-content .flow_content-box{
    padding: 20px 0;
  }
  .page-section.flow .flow_content-box .flow_content{
    margin: 0 20px;
    padding: 25px;
  }
  .page-section.flow .section-content .flow_content-box:before{
    top: -2%;
  }
  .page-section.flow .flow_content-box .flow_content .flex-box .flow_image,
  .page-section.flow .flow_content-box .flow_content .flex-box .flow_text{
    width: 100%;
  }
  .page-section.flow .flow_content-box .flow_content .flex-box .flow_image{
    margin-bottom: 20px;
  }
  .page-section.flow .flow_content-box .flow_content h3{
    margin-bottom: 20px;
    padding: 10px;
  }
  .page-section.flow .flow_content-box .flow_content .flex-box .flow_text p{
    font-size: 12px;
  }
  .page-section.flow .flow_content-box .flow_content .flex-box .flow_text p:last-child{
    margin-bottom: 0;
  }
  .page-section.flow .flow_content-box .flow_content .cta--dark{
    margin-top: 10px;
  }
  .vertical-dots{
    width: 100px;
    height: 50px;
    border-radius: 0;
    margin: 40px auto;
  }
  .vertical-dots span{
    width: 3px;
    height: 3px;
  }

  .page-section.strength .section-content .title-box{
    margin: 0 20px 40px;
  }
  .page-section.strength .section-content > .title-box h3{
    font-size: 22px;
    text-align: left;
  }
  .page-section.strength .section-content > .title-box h3 span{
    font-size: 36px;
  }
  .page-section.strength img.strength-image{
    width: 90%;
  }
  .page-section.strength img.strength-image.left{
    margin-left: 0;
    margin-right: auto;
  }
  .page-section.strength img.strength-image.right{
    margin-left: auto;
    margin-right: 0;
  }
  .page-section.strength .section-content .strength_content-wrap{
    margin-bottom: 60px;
  }
  .page-section.strength .section-content .strength_content-wrap .strength_content-box::before{
    width: 30px;
    height: 53vw;
  }
  .page-section.strength .section-content .strength_content-wrap .strength_content-box .flex-box{
    min-height: 0;
  }
  .page-section.strength .section-content .strength_content-wrap .strength_content-box h4{
    margin-bottom: 20px;
  }
  .page-section.strength .section-content .strength_content-wrap .strength_content-box p{
    letter-spacing: 0;
    line-height: 1.75;
  }
  .page-section.strength .section-content .strength_content-wrap .strength_content-box p:last-child{
    margin-bottom: 0;
  }
  .page-section.reason .section-content .grid-box{
    grid-template-columns:100%;
    gap: 60px;
  }
  .page-section.reason .section-content img{
    margin-bottom: 30px;
  }
  .page-section.reason .section-content h3{
    font-size: 24px;
  }

  .page-section.doctor .section-content .flex-box{
    display: block;
    width: 100%;
  }
  .page-section.doctor .section-content .flex-box .flex-item{
    width: 100%;
    margin-bottom: 30px;
  }
  .page-section.doctor .section-content .flex-item.right.doctor-image{
    width: 60%;
    margin: 0 auto 40px;
  }
  .appears-triangle::after {
    right: -10px;
    bottom: -10px;
    width: 80px;
    height: 80px;
  }
  .page-section.doctor .section-content .flex-item.left.doctor-text{
    width: 100%;
  }
  .page-section.doctor .section-content .doctor-text h3{
    font-size: 20px;
    padding: 0 0 0 10px;
    margin-bottom: 30px;
  }
  .page-section.doctor .section-content .doctor-text h3:after{
    bottom: -10px;
    width: 100%;
  }
  .page-section.doctor .section-content .doctor-text span{
    font-size: 16px;
    padding: 5px 20px;
    margin-bottom: 20px;
  }
  .page-section.doctor .section-content .career-content .title-box{
    margin-bottom: 10px;
  }
  .heading-horizontal-line{
    font-size: 16px;
    padding: 5px 35px;
  }
  .page-section.doctor .section-content .career-content table{
    border-spacing: 0 0;
  }
  .page-section.doctor .section-content .flex-box .flex-item.right .career-content_box{
    margin-bottom: 30px;
  }
  .implant-certificate.flex-box {
    margin: 100px 20px;
    gap: 80px;
  }
  image-triangle-double::before,
  image-triangle-double::after {
    width: 80px;
    height: 80px;
  }
  .grid-box.gallery-grid{
    display: block;
  }
  .grid-box.gallery-grid .grid-item{
    margin-bottom: 40px;
  }
  .grid-box.gallery-grid .grid-item:last-child{
    margin-bottom: 0;
  }
  .grid-box.gallery-grid img{
    margin-bottom: 20px;
  }
  .grid-box.gallery-grid h3{
    font-size: 22px;
  }

  .page-implant .page-section.about .about-image{
    width: 80%;
    margin: 0 auto 40px;
  }
  .page-implant .about .flex-box .about-text{
    width: 100%;
  }
  .page-implant .merit .flex-box .flex-item{
    width: 100%;
    margin-right: 0;
    margin-bottom: 30px;
  }

  .treatment-section {
    padding: 40px 20px;
    margin-bottom: 80px;
  }
  .difference .treatment-section:last-child{
    margin-bottom: 0;
  }
  .treatment-heading::before{
    display: none;
  }
  .treatment-card::before {
    left: 0;
    right: 0;
    margin: auto;
    top: -45px;
    bottom: auto;
    height: 45px;
    width: 80%;
  }
  .treatment-card::after{
    left: 0;
    right: 0;
    margin: auto;
    top: auto;
    bottom: -45px;
    height: 45px;
    width: 80%;
  }
  .treatment-image img{
    max-height: 300px;
  }
  .treatment-heading{
    padding: 15px 0;
    font-weight: normal;
    width: 100%;
    margin: 0 auto 25px;
  }
  .treatment-number {
    transform: translate(-50%, -50%);
    top: -45px;
    left: 50%;
    width: 60px;
    height: 60px;
  }
  .treatment-number span{
    letter-spacing: 0;
  }
  .page-section.structure .flex-box .flex-item{
    width: 100%;
    margin-bottom: 40px;
  }
  .page-section.structure .flex-box .flex-item:last-child{
    margin-bottom: 0;
  }
  .page-section.structure .flex-box .flex-item .structure-card{
    min-height: 0;
  }
  .page-section.structure .flex-box .flex-item .text-box h3{
    font-size: 22px;
    text-align: center;
  }

  .page-section.flow .section-content .inner-1100:before {
    top: 100px;
    bottom: 100px;
    left: 0;
    right: 0;
    margin: auto;
    width: 95%;
    baseline-shift: 90%;
  }
  .page-section.flow .flow-content_item{
    width: 90%;
    padding: 20px;
    border-width: 2px;
  }
  .page-section.flow .flow-content_item .flow-content_image,
  .page-section.flow .flow-content_item .flow-content_text{
    width: 100%;
  }
  .page-section.flow .flow-content_item span{
    margin: 10px auto 15px;
    font-size: 16px;
    display: inline-block;
  }
  .page-section.flow .flow-content_item h3{
    font-size: 18px;
    font-weight: normal;
  }
  .page-section.flow .flow-content_item .flow-content_text .title-box{
    margin-bottom: 20px;
    display: block;
    text-align: center;
    padding-bottom: 5px;
  }

  table.price-table th{
    font-size: 12px;
    padding: 10px;
  }
  table.price-table td{
    padding: 10px;
  }
  table.price-table td,
  table.price-table td li{
    font-size: 10px;
  }

  .page-price .implant .section-content .implant-content .price-box__text{
    font-size: 16px;
  }
  .page-price .implant .section-content .implant-content .price-box__price{
    text-align: center;
    font-size: 40px;
  }
  .page-price .implant .section-content .implant-content .price-box__price span{
    font-size: 15px;
  }
  .page-price .implant .section-content .implant-content .price-box__price span span{
    font-size: 13px;
  }
  .page-price .implant .section-content .implant-content .price-section{
    margin: 60px auto 10px;
  }
  .page-price .implant .section-content .implant-content .price-note{
    font-size: 11px;
  }
  .page-section.price-list::before,
  .page-section.price-list::after,
  .page-section.price-list .gold-line-left::before,
  .page-section.price-list .gold-line-right::before{
    height: 25px;
  }
  .page-section.price-list::before,
  .page-section.price-list::after{
    top: 49%;
    width: 15vw;
  }
  .page-section.price-list .gold-line-left::before,
  .page-section.price-list .gold-line-right::before{
    top: 400px;
    width: 10vw;
  }
  .page-price .implant .section-content .implant-content:first-child{
    margin-bottom: 0;
  }

  .page-section.deduction::before,
  .page-section.deduction::after,
  .page-section.deduction .gold-line-left::before,
  .page-section.deduction .gold-line-right::before{
    width: 4vw;
    height: 30vw;
  }
  .page-section.deduction::before,
  .page-section.deduction::after{
    top: 9%;
  }
  .page-section.payment .payment-box h3{
    font-size: 18px;
  }
  .page-section.deduction .deduction_content-box{
    margin-bottom: 30px;
  }
  .page-section.deduction .deduction_content-box h3{
    font-size: 20px;
    font-weight: normal;
    padding-bottom: 15px;
  }
  .page-section.deduction .deduction_content-box p{
    font-size: 12px;
  }
  .page-section.deduction .calculation .grid-box{
    padding: 15px 5px;
  }
  .page-section.deduction .calculation .grid-box div{
    padding: 5px 3px;
  }
  .page-section.deduction .calculation .grid-box div p{
    font-size: 8px;
  }
  .page-section.deduction .calculation p.price span{
    font-size: 12px;
  }
  .page-section.deduction .calculation p.caution{
    font-size: 10px;
  }
  .page-price .page-section.message .section-content:after{
    display: none;
  }
  .page-section.message .message_content-box h3{
    font-size: 22px;
    margin: 30px auto;
  }
  .page-section.message .blue-line::before,
  .page-section.message .blue-line::after{
    height: 20vw;
  }

  .case-item h3{
    font-size: 20px;
    margin-bottom: 40px;
  }
  .ba-inner{
    gap: 20px;
  }
  .ba-arrow{
    width: 30px;
    height: 50px;
  }
  .ba-label{
    font-size: 12px;
    padding: 5px;
  }
  .case .case-detail{
    margin-top: 20px;
  }
  .case .case-detail table{
    table-layout: auto;
    margin-bottom: 20px;
  }
  .case .case-detail table tr th{
    width: 1%;
    white-space: nowrap;
  }
  .case .case-detail table tr th,
  .case .case-detail table tr td{
    font-size: 12px;
    padding: 15px 5px;
    word-break: break-word;
  }
  .case-coming-soon:after{
    font-size: 20px;
  }

  .overview-content-box{
    padding: 20px 0;
    position: relative;
    overflow: inherit;
    margin-top: 150px;
  }
  .overview-content-box .clinic-detail .flex-right{
    width: 100%;
    margin-top: -110px;
  }
  .overview-content-box .clinic-detail .flex-right img.clinic-overview_main-image{
    width: 100%;
  }
  .overview-content-box .clinic-detail .flex-right .flex-box img{
    width: 47%;
  }
  .access-information{
    margin-top: 30px;
    width: 100%;
  }
  .overview-content-box h3.title{
    font-size: 18px;
    padding: 0 20px;
    margin-bottom: 30px;
  }
  .overview-content-box .clinic-detail ul{
    margin-top: 0;
  }
  .overview-content-box .clinic-detail ul li{
    font-size: 14px;
  }
  .overview-content-box .clinic-detail ul li img{
    width: 15px;
    height: auto;
  }
  .overview-content-box .access-card{
    padding: 0 0px;
  }
  .overview-content-box .access-ways .access-ways__inner .access-card:nth-of-type(1){
    padding-right: 10px;
  }
  .overview-content-box .access-ways .access-ways__inner .access-card:nth-of-type(2){
    padding: 0 10px;
  }
  .overview-content-box .access-ways .access-ways__inner .access-card:nth-of-type(3){
    padding-left: 10px;
  }
  .overview-content-box .access-card__note{
    font-size: 8px;
  }
  .overview-content-box .opening.hours{
    width: 100%;
    padding: 0;
  }
  .overview-content-box .hours-table td{
    padding: 10px 8px;
  }
  .overview-content-box .opening.hours p.hours-note{
    margin: 10px auto 0;
  }
  .map-section .map-box iframe{
    max-height: 250px;
  }
  .access-root{
    padding: 50px 20px;
  }
  .access-root .title-box h2{
    font-size: 18px;
    width: auto;
    align-items: center;
    max-width: 250px;
  }
  .access-root .title-box h2 img{
    width: 25px;
  }
  .access-root .grid-box {
    grid-template-columns: 100%;
    gap: 30px;
  }
  .access-root .grid-box .grid-item img{
    margin-bottom: 15px;
  }
  .access-root .grid-box .grid-item p{
    font-size:14px;
  }

  footer.site-footer{
    padding: 60px 0;
  }
  footer.site-footer .footer-title{
    text-align: center;
  }
  footer.site-footer .flex-item.logo{
    width: 100%;
    text-align: center;
    margin-bottom: 40px;
  }
  footer.site-footer .flex-item.logo img{
    margin: 0 auto;
    max-width: 150px;
  }
  footer.site-footer p.flex-item{
    width: 100%;
    text-align: center;
    font-size: 17px;
    margin-bottom: 0;
  }
  footer.site-footer .clinic-hours-box{
    width: 100%;
    margin-bottom: 20px;
  }
  .hours-table{
    min-width: 100px;
    width: 100%;
  }
  .hours-table thead th{
    white-space: unset;
  }
  .hours-table thead th{
    padding: 5px 5px;
  }
  .hours-table th,
  .hours-table td{
    font-size: 11px;
  }
  footer .hours-table th,
  footer .hours-table td{
    font-size: 11px;
    padding: 5px 5px;
  }
  .footer-information .flex-item{
    width: 100%;
  }
  .footer-information .flex-item .flex-box.access .flex-item{
    padding: 5px 5px;
    margin-right: 2%;
    width: 32%;
    gap: 5px;
  }
  .footer-information .flex-box.access .flex-item img{
    max-width: 25px;;
  }
  .footer-information .flex-box.access .flex-item p{
    font-size: 10px;
  }
  .footer-information .cta-mini{
    display: block;
  }
  .footer-information .cta-mini a{
    width: 100%;
  }
  .footer-information .cta-mini a.btn--tel{
    margin-bottom: 25px;
  }
  .footer-nav-section nav ul{
    gap: 20px 4%;
  }
  .footer-nav-section nav ul li{
    width: 48%;
  }
  .footer-nav-section nav ul li a{
    font-size: 14px;
  }

}

/* ==============================
   Contact Form 7 スタイル
   ============================== */

/* お問い合わせページ全体 */
.page-contact .entry-content {
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* フォーム全体のスタイル */
.wpcf7 {
  background: #fff;
  padding: 40px;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* フォームグループ */
.wpcf7 p {
  margin-bottom: 30px;
}

/* ラベル */
.wpcf7 label {
  display: block;
  font-size: 16px;
  font-weight: 500;
  color: var(--brand);
  margin-bottom: 10px;
  letter-spacing: 0.04em;
}

/* 必須マーク */
.wpcf7 .required {
  color: #e53935;
  margin-left: 4px;
  font-size: 14px;
}

/* 入力フィールド共通 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  padding: 14px 16px;
  font-size: 16px;
  font-family: "Yu Mincho", "Noto Serif JP", serif;
  color: #333;
  background: #fff;
  border: 2px solid #e0e0e0;
  border-radius: 4px;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  box-sizing: border-box;
}

/* フォーカス時 */
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(0, 12, 76, 0.1);
}

/* プレースホルダー */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: #999;
  opacity: 1;
}

/* テキストエリア */
.wpcf7 textarea {
  min-height: 180px;
  resize: vertical;
  line-height: 1.6;
}

/* セレクトボックス */
.wpcf7 select {
  cursor: pointer;
  background-image: url('data:image/svg+xml;charset=UTF-8,%3csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"%3e%3cpolyline points="6 9 12 15 18 9"%3e%3c/polyline%3e%3c/svg%3e');
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 20px;
  padding-right: 40px;
  appearance: none;
}

/* チェックボックス・ラジオボタン */
.wpcf7 .wpcf7-list-item {
  margin: 0 0 12px 0;
  display: flex;
  align-items: center;
}

.wpcf7 .wpcf7-list-item-label {
  margin-left: 8px;
  font-size: 15px;
  cursor: pointer;
  font-weight: normal;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 0;
  cursor: pointer;
  accent-color: var(--brand);
}

/* 送信ボタン */
.wpcf7 input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 350px;
  height: 60px;
  padding: 0 40px;
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  font-family: "Yu Mincho", "Noto Serif JP", serif;
  letter-spacing: 0.08em;
  text-decoration: none;
  background: linear-gradient(135deg, var(--brand) 0%, var(--bg-blue-02) 100%);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0, 12, 76, 0.2);
  margin-top: 20px;
}

.wpcf7 input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 12, 76, 0.3);
  background: linear-gradient(135deg, var(--bg-blue-02) 0%, var(--brand) 100%);
}

.wpcf7 input[type="submit"]:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(0, 12, 76, 0.2);
}

/* ボタンコンテナを中央揃え */
.wpcf7 .wpcf7-submit-wrapper {
  text-align: center;
  margin-top: 40px;
}

/* バリデーションエラー */
.wpcf7-not-valid-tip {
  color: #e53935;
  font-size: 13px;
  margin-top: 6px;
  display: block;
  font-weight: 500;
}

.wpcf7-not-valid {
  border-color: #e53935 !important;
  background: #fff5f5;
}

/* 送信結果メッセージ */
.wpcf7-response-output {
  margin: 30px 0 0 0;
  padding: 16px 20px;
  border-radius: 4px;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.04em;
}

/* 成功メッセージ */
.wpcf7-mail-sent-ok {
  background: #e8f5e9;
  color: #2e7d32;
  border: 2px solid #66bb6a;
}

/* エラーメッセージ */
.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
  background: #ffebee;
  color: #c62828;
  border: 2px solid #ef5350;
}

/* スパムブロックメッセージ */
.wpcf7-spam-blocked {
  background: #fff3e0;
  color: #e65100;
  border: 2px solid #ff9800;
}

/* 送信中はボタンを無効化 */
.wpcf7 form.submitting input[type="submit"] {
  opacity: 0.7;
  cursor: not-allowed;
}

/* アクセプタンス（同意チェックボックス） */
.wpcf7-acceptance {
  margin: 25px 0;
}

.wpcf7-acceptance .wpcf7-list-item {
  padding: 16px;
  background: #f5f5f5;
  border-radius: 4px;
  border: 1px solid #e0e0e0;
}

/* ファイルアップロード */
.wpcf7 input[type="file"] {
  padding: 10px;
  font-size: 14px;
  border: 2px dashed #e0e0e0;
  background: #fafafa;
  cursor: pointer;
}

.wpcf7 input[type="file"]:hover {
  border-color: var(--brand);
  background: #f5f5f5;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .wpcf7 {
    padding: 30px 20px;
  }

  .page-contact .entry-content {
    padding: 20px 15px;
  }

  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 input[type="url"],
  .wpcf7 input[type="number"],
  .wpcf7 input[type="date"],
  .wpcf7 select,
  .wpcf7 textarea {
    font-size: 16px; /* iOSの自動ズームを防ぐ */
  }

  .wpcf7 input[type="submit"] {
    width: 100%;
    max-width: 100%;
    font-size: 16px;
    height: 54px;
  }

  .wpcf7 label {
    font-size: 15px;
  }

  .wpcf7 textarea {
    min-height: 150px;
  }
}

/* =Gallery Slider (About Section)
--------------------------------------------- */
.gallery-slider {
  width: 100%;
  overflow: hidden;
  margin-top: 60px;
}

.gallery-slider__track {
  display: flex;
  animation: gallery-scroll 40s linear infinite;
  width: fit-content;
}

.gallery-slider__item {
  flex-shrink: 0;
  width: 320px;
  margin-right: 20px;
}

.gallery-slider__item img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

@keyframes gallery-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* ホバー時にアニメーション一時停止 */
.gallery-slider:hover .gallery-slider__track {
  animation-play-state: paused;
}

/* タブレット */
@media screen and (max-width: 1024px) {
  .gallery-slider__item {
    width: 280px;
  }
  .gallery-slider__item img {
    height: 190px;
  }
}

/* スマートフォン */
@media screen and (max-width: 768px) {
  .gallery-slider {
    margin-top: 40px;
  }
  .gallery-slider__item {
    width: 240px;
    margin-right: 15px;
  }
  .gallery-slider__item img {
    height: 160px;
  }
}
