/*Theme Name: fuchu-dcAuthor: TakemiDescription: Custom WordPress ThemeVersion: 1.0*//* ========== Reset ========== */html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video {  border: 0;  outline: 0;  font-size: 100%;  font-weight: normal;}/* ========== Base ========== */:root {  --c-main: #BDA653;  /* ゴールド */  --c-accent: #173556;  /* 紺 */  --c-beige: #fbf6ea;  --ff-title: "Zen Old Mincho", serif;  --ff-body: "Zen Kaku Gothic Antique", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;}* {  box-sizing: border-box}body {  margin: 0;  color: #222;  font: 400 16px/1.8 var(--ff-body);  background: var(--4, #F6FAFE);}img {  max-width: 100%;  display: block}a:hover {  opacity: 0.7;}.container {  max-width: 1280px;  margin-inline: auto}.container_m {  max-width: 1000px;  margin-inline: auto}.container_s {  max-width: 780px;  margin-inline: auto}.en {  font-family: var(--ff-title)}.only-sp {  display: none}@media(max-width:768px) {  .only-sp {    display: inline  }  .only-pc {    display: none  }  .container,  .container_m,  .container_s {    padding: 0 3%;  }  /* util */  .section--bg-beige {    background: #fbf8f0  }}/*-----------------------------ナビ------------------------------*//* ハンバーガーボタン */.hamburger {  display: none;  position: fixed;  top: 20px;  right: 20px;  width: 36px;  height: 26px;  flex-direction: column;  justify-content: space-between;  background: transparent;  border: none;  cursor: pointer;  z-index: 1001;}.hamburger span {  display: block;  height: 3px;  width: 100%;  background-color: #fff;  border-radius: 3px;  transition: all 0.3s ease;}/* ハンバーガー開閉アニメーション */.hamburger.active span:nth-child(1) {  transform: translateY(11px) rotate(45deg);}.hamburger.active span:nth-child(2) {  opacity: 0;}.hamburger.active span:nth-child(3) {  transform: translateY(-11px) rotate(-45deg);}/* -----------------------------   スマホ専用メニュー----------------------------- */.header_sp {  display: none;}.sp-nav {  position: fixed;  top: 0;  right: 0;  width: 85%;  height: 100vh;  background-color: #f7f9fc;  box-shadow: -5px 0 15px rgba(0, 0, 0, 0.3);  transform: translateX(100%);  transition: transform 0.4s ease;  z-index: 2000;  padding: 24px;  overflow-y: auto;  visibility: hidden;  pointer-events: none;}/* 表示時 */.sp-nav.active {  transform: translateX(0);  visibility: visible;  pointer-events: auto;}/* 閉じるボタン */.sp-nav__close {  position: absolute;  top: 16px;  right: 16px;  background: none;  border: none;  font-size: 28px;  cursor: pointer;  color: #102C57;}/* メニューリスト */.sp-nav__list {  display: flex;  flex-direction: column;  gap: 16px;  margin-top: 40px;  padding: 0;}.sp-nav__list>li>a,.sp-nav__group>span {  font-size: 16px;  font-weight: 600;  color: #102C57;  text-decoration: none;  display: block;  padding: 8px 0;}/* サブメニュー */.sp-nav__group ul {  margin-top: 8px;  display: flex;  flex-wrap: wrap;  gap: 10px;  border-top: 1px solid #ccc;  padding-top: 8px;  padding-left: 0}.sp-nav__group ul li {  list-style: none;}.sp-nav__group ul li a {  font-size: 14px;  color: #333;  text-decoration: none;}.sp-nav__group ul li a:hover {  color: #D6B15F;}/* スマホ時のみ表示 */@media screen and (max-width: 1024px) {  .header_sp {    display: block;    height: 70px;    background: #001C51;    z-index: 100;    position: fixed;    width: 100%;  }  .header_sp p {    margin: 3px 0 0 10px;    font-size: 0.6rem;  }  .header_sp .kv__logo {    display: inline-block;  }  .hamburger {    display: flex;  }  .kvnav {    display: none;  }}/* PCでは非表示 */@media screen and (min-width: 1025px) {  .sp-nav {    display: none !important;  }}/* -----------------------------   スマホ・タブレット専用----------------------------- */@media screen and (max-width: 1024px) {  /* ハンバーガー表示 */  .hamburger {    display: flex;    position: fixed;    top: 20px;    right: 20px;  }  /* kvnavを完全に非表示にしておく */  .kvnav {    position: fixed;    top: 0;    right: 0;    width: 75%;    height: 100vh;    background-color: #fff;    box-shadow: -5px 0 15px rgba(0, 0, 0, 0.2);    transition: transform 0.4s ease, visibility 0.4s ease;    transform: translateX(100%);    visibility: hidden;    /* ← 初期状態は非表示 */    pointer-events: none;    /* ← クリックも無効 */    z-index: 1000;    padding-top: 80px;    display: block;  }  /* ハンバーガーが開いたら表示 */  .kvnav.active {    transform: translateX(0);    visibility: visible;    /* ← 表示 */    pointer-events: auto;    /* ← クリック可能にする */  }  /* SP時は縦並び */  .kvnav__list {    display: flex;    flex-direction: column;    gap: 24px;    padding: 0 24px;  }  .kvnav__list li a {    font-size: 18px;    color: #102C57;    text-decoration: none;    transition: color 0.3s ease;  }  .kvnav__list li a:hover {    color: #D6B15F;  }}/* -----------------------------   PC専用スタイル----------------------------- */@media screen and (min-width: 1025px) {  .hamburger {    display: none;  }  .kvnav {    position: static;    width: auto;    height: auto;    background: none;    box-shadow: none;    padding-top: 0;    transform: none !important;    visibility: visible !important;    pointer-events: auto !important;  }  .kvnav__list {    display: flex;    flex-direction: row;    gap: 40px;  }  .kvnav__list li a {    font-size: 16px;    text-decoration: none;  }  .kvnav__list li a:hover {    color: #ffd700;  }}/*-----------------------------TOPページ------------------------------*//* ========== KV ========== */.kv {  position: relative;  color: #fff;  overflow: visible;  background: #fbf8f0;  height: 100vh;  /*height: 910px;  max-height: 910px;*/}/*テスト*/.kv::before {  content: "";  display: block;  position: absolute;  width: 31em;  left: calc((100% - 31em) / 2);  top: 0;  height: 100%;  mix-blend-mode: multiply;  background-color: #001C51;  z-index: 1;}.kv .kv__front {  padding: 2em 1em;  color: #fff;  width: 31em;  margin: 0 auto;  z-index: 1;  position: relative;  display: block;}.kv_catch {  display: flex;  justify-content: center;  margin: 6em 0;}.kv_catch p {  -ms-writing-mode: tb-rl;  writing-mode: vertical-rl;  line-height: 1.7;  font-family: "Zen Old Mincho";  font-size: 60px;  font-style: normal;  font-weight: 700;  letter-spacing: 1.92px;}.kv_catch p span {  display: block;  white-space: nowrap;  letter-spacing: 0.04em;}.kv_catch p span i {  display: inline-block;  margin: -0.4em 0;  font-style: normal;}.kv_catch p span:nth-of-type(2) {  margin-top: 0.7em;}.kv_catch p span:nth-of-type(3) {  margin-top: 2em;}.kv__slider {  position: absolute;  /* 今の kv__top_bg と同じ位置に配置 */  top: 0;  left: 0;  width: 100%;  height: 100vh;  /*height: 910px;*/  z-index: 0;  /* 前面の要素の後ろに置く */  overflow: hidden;}.kv__slide {  position: absolute;  top: 0;  left: 0;  width: 100%;  height: 100%;  background-size: cover;  background-position: top;  background-repeat: no-repeat;  opacity: 0;  transition: opacity 1s ease-in-out;}.kv__slide.is-active {  opacity: 1;}.contact-box {  color: #fff;  text-align: center;  font-family: "Zen Old Mincho";  width: 300px;  margin: 0 auto;}.contact-box__lead {  font-size: 24px;  margin: 0;}.contact-box__tel {  font-family: "PT Serif", serif;  font-style: italic;  font-size: 30px;  font-weight: 500;  margin: -7px 0 5px;  letter-spacing: 5px;}.contact-box__icon {  display: inline-block;}.contact-box__icon i {  color: #fff;  font-size: 25px;}.contact-box__web {  display: flex;  flex-direction: column;  align-items: center;  gap: 6px;  background: #fff;  border: solid 3px #d6b15f;  padding: 5px 0 7px;}.contact-box__note {  font-size: 20px;  color: #d6b15f;}.contact-box__btn {  display: inline-block;  background: #d6b15f;  color: #fff;  padding: 8px 65px;  text-decoration: none;  letter-spacing: 2px;}.contact-box__btn:hover {  opacity: 0.9;}.kv_catch_sp {  display: none;}/* PC用 */.kv__slide--1 {  background-image: url('img/kv_bg01.jpg');}.kv__slide--2 {  background-image: url('img/kv_bg02.jpg');}/* 1500以下用 */@media screen and (max-height: 1000px) {.kv_catch {    display: flex;    justify-content: center;    margin: 2em 0;}			.kv_catch p {    -ms-writing-mode: tb-rl;    writing-mode: vertical-rl;    line-height: 1.7;    font-family: "Zen Old Mincho";    font-size: 36px;    font-style: normal;    font-weight: 700;    letter-spacing: 1.92px;}	}/* スマホ用 */@media screen and (max-width: 1024px) {  .kv__slider {    height: auto;    padding-top: 105.4545%;    margin-top: 70px;  }  .kv__slide {    background-size: contain;    background-repeat: no-repeat;    background-color: #000;  }  .kv__slide--1 {    background-image: url('img/kv_bg01_sp.jpg');  }  .kv__slide--2 {    background-image: url('img/kv_bg02_sp.jpg');  }  .kv_catch_sp {    position: absolute;    top: 50%;    left: 5%;    right: 0;    z-index: 2;    display: block;    font-family: "Zen Old Mincho";    width: 600px;    letter-spacing: 2px;    font-size: 2.5em;  }  .kv_catch_sp p {    font-style: normal;    margin: 0;  }  .highlight {    background-color: #001c51d6;    padding: 2px 9px;  }}@media screen and (max-width: 768px) {  .kv_catch_sp {    position: absolute;    top: 35%;    left: 5%;    right: 0;    z-index: 2;    display: block;    font-family: "Zen Old Mincho";    letter-spacing: 2px;    font-size: 1.9em;  }}/*endテスト*/.kv__top_bg {  background-image: url('img/kv_bg.jpg');  position: absolute;  inset: 0;  background-size: cover;  background-position: center right;  transform: scale(1.01)}/*下層ページ用*/.kv-page {  position: relative;  color: #fff;  overflow: visible;  background: #000;  height: 501px;  max-height: 501px;}.kv__bg {  position: absolute;  inset: 0;  background-size: cover;  background-position: center right;}/* 斜めの白マスク（左端） */.kv__mask {  position: absolute;  inset: 0 auto -40px 0;  width: min(28vw, 260px);  background: #fbf8f0;  z-index: 2;  /* BGより上、テキストより下 */  pointer-events: none;  /* クリック妨げない */  /* 斜めのエッジを作る */  clip-path: polygon(0 0, 99% 0, 42% 100%, 0% 100%);  /* 少しだけ立体感 */  box-shadow: 6px 0 24px rgba(0, 0, 0, .06);  opacity: 1;}.kv__top {  position: relative;  z-index: 3;  display: flex;  align-items: flex-start;  justify-content: space-between;  padding-top: 24px;  max-width: 95%;  margin: 0 auto;}.kv__contact {  display: flex;  align-items: stretch;  background: #fff;  color: #102C57;  border: 1px solid #0001;  box-shadow: 0 10px 24px #0003;  overflow: hidden;  text-align: center;}.kv__telblock {  padding: 12px;}.kv__telhead {  font: 700 14px/1 var(--ff-body);  margin: 0;}.kv__telnum {  font-family: lato;  font-size: 26px;  font-weight: 700;  margin: 0;  letter-spacing: .02em;  line-height: 1.5;}.kv__telnum i {  display: inline-block;  transform: rotate(90deg);  margin-right: 6px;}.kv__hours {  margin: 0;  font: 14px/1.5 var(--ff-body);  color: #6b7280;}.kv__webbtn {  display: grid;  align-content: center;  padding: 12px 18px;  min-width: 180px;  border-left: 1px solid #0001;  text-decoration: none}.kv__webbtn-sub {  font-size: 18px;  color: #BDA653}.kv__webbtn-main {  font-size: 24px;  font-weight: 600;  color: #BDA653;  line-height: 1.15;  letter-spacing: 2px;}.kv__webbtn-more {  font-size: 18px;  color: #BDA653;  letter-spacing: .06em}.kv__vlabels {  position: absolute;  left: 50px;  top: 75%;  transform: translateY(-30%);  display: flex;  gap: 22px;  z-index: 2}.kv__vlabel {  display: flex;  align-items: center;  gap: 8px;  flex-direction: column;}.kv__vlabel span:last-child {  writing-mode: vertical-rl;  text-orientation: upright;  letter-spacing: .12em;  font: 700 20px/1.1 var(--ff-body);  color: #102C57;}.kv__dot {  width: 8px;  height: 8px;  border-radius: 50%;  background: #d2b35b;  box-shadow: 0 0 0 4px #d2b35b40}.kv__catch {  position: absolute;  right: 0;  bottom: 2em;  z-index: 2;  padding: 180px 0 120px;  max-width: 95%;  margin: 0 auto;}.kv__diamond {  width: min(350px, 60vw);  aspect-ratio: 1/1;  margin-left: clamp(8px, 6vw, 80px);  background: linear-gradient(180deg, #0c284aea, #0c284ad1);  transform: rotate(45deg);  box-shadow: 0 30px 80px #0004}.kv__diamond-inner {  width: 100%;  height: 100%;  transform: rotate(-45deg);  display: flex;  align-items: center;  justify-content: center;  padding: 8%}.kv__copy {  font: 400 clamp(30px, 2.6vw, 38px) / 1.4 var(--ff-title);  letter-spacing: .06em;  text-align: center;  margin: 0;  text-shadow: 0 6px 24px #0006}.kv__ctas {  position: absolute;  right: clamp(16px, 4vw, 40px);  bottom: 50px;  display: flex;  gap: 20px;  align-items: flex-end}.kv__circle {  position: relative;  width: 170px;  height: 170px;  border-radius: 50%;  display: flex !important;  /* ← grid から flex に */  flex-direction: column;  align-items: center;  justify-content: center;  row-gap: 7px;  text-align: center;  text-decoration: none;  box-shadow: 0 14px 36px #0004;  backdrop-filter: blur(2px)}.kv__circle--gold {  background: #BDA653;  color: #fff;  border: 3px solid #fff}.kv__circle--navy {  color: #fff;  border: 4px solid #fff;  background-image: url("img/pixta_74083781_M 1.png");  /* background: radial-gradient(120% 120% at 30% 20%, #2a4f7d, #123055 70%) */}.kv__circle-sub {  font-size: 13px;}.kv__circle-main {  line-height: 1.15;  font-size: 20px;  font-weight: 600;  letter-spacing: 2px;}.kv__circle-more {  font-size: 13px;}.kv__circle-photo {  position: absolute;  inset: 10px;  border-radius: 50%;  background-size: cover;  background-position: center;  mix-blend-mode: screen;  opacity: .35;  pointer-events: none}.kv__mesh {  position: absolute;  right: 12vw;  top: 26vh;  opacity: .6}.kvnav {  position: absolute;  left: 0;  right: 0;  bottom: -4px;  z-index: 1;  background: var(--c-main);  color: #fff}.kvnav__inner {  padding: 16px 0}.kvnav__list {  list-style: none;  margin: 0;  padding: 0;  display: flex;  justify-content: center;  gap: 47px;  flex-wrap: wrap;}.kvnav__list a {  color: #fff;  font: 400 14px/1 var(--ff-body);  text-decoration: none;  letter-spacing: .02em;  position: relative}.kvnav__list li+li a::before {  content: "／";  color: #fff;  opacity: .85;  margin-right: 24px;  position: relative;  left: -12px}/* サブメニューの基本非表示 */.kvnav__dropdown {  display: none;  position: absolute;  top: 100%;  /* 親の真下に表示 */  left: 0;  background: #F6E9BA;  min-width: 200px;  padding: 0;  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);  z-index: 1000;}.kvnav__dropdown li {  list-style: none;}.kvnav__dropdown li a::before {  display: none;}.kvnav__dropdown li a {  display: block;  padding: 10px;  border-bottom: 1px dotted #ccc;  color: #333;  text-align: center;  text-decoration: none;  white-space: nowrap;}.kvnav__dropdown li a:hover {  background: #f5f5f5;  color: #AB903C;  /* ブランドカラー */}/* 親リストを相対位置に */.kvnav__group {  position: relative;}/* hover時に表示 */.kvnav__group:hover>.kvnav__dropdown {  display: block;}/* s最上部固定時のスタイル */.kvnav.is-fixed {  position: fixed;  top: 0;  left: 0;  right: 0;  z-index: 9999;  /* 最前面 */  height: 62px;}@media (max-width:1024px) {  .kv__logo img {    max-width: 223px;  }  .kv__mask {    width: 34vw;    clip-path: polygon(0 0, 92% 0, 66% 100%, 0% 100%);  }  .kv__contact {    transform: scale(.92);    transform-origin: top right  }  .kv__ctas {    right: 24px;    bottom: 110px  }  .kv::before {    display: none;  }  .kv .kv__front {    display: none;  }}@media (max-width:768px) {  .kv__mask {    width: 44vw;    clip-path: polygon(0 0, 100% 0, 74% 100%, 0% 100%);    box-shadow: 4px 0 16px rgba(0, 0, 0, .05);  }  .kv__top_bg {    background-image: url('img/kv_sp_bg.jpg');  }  .kv__top {    padding-top: 16px  }  .kv__contact {    display: none  }  .kv__diamond {    width: 72vw;    margin-left: 6vw  }  .kv-page {    height: 200px;  }  .kv__ctas {    position: static;    margin: 18px auto 24px;    justify-content: center  }  .kv__circle {    width: 140px;    height: 140px  }  .kv__circle-main {    font-size: 16px;    font-weight: 600;  }  .kvnav {    position: static;    clip-path: none  }  .kv::before {    width: 11em;    left: calc((100% - 11em) / 2);  }  .kv .kv__front {    width: 11em;  }  .kv_catch p {    font-size: 2em;  }}/* ========== 厚労省認定 ========== */.mhlw-cert {  background: #fbf8f0;  padding: 50px;}.mhlw-box {  position: relative;  background: #f9f9f9;  padding: clamp(28px, 5vw, 48px) clamp(20px, 5vw, 56px);  margin: clamp(24px, 5vw, 48px) auto;  max-width: 1120px;  border: 1px solid #222;  box-shadow: 0 2px 0 #0001}.mhlw-box::before {  content: "";  position: absolute;  inset: 5px;  border: 1px solid #222}.mhlw-emblem {  position: absolute;  left: 50%;  top: 0;  transform: translate(-50%, -50%);  width: 56px;  height: 56px;  border-radius: 999px;  background: #fff;  display: grid;  place-items: center;  box-shadow: 0 2px 0 #0001}.mhlw-emblem img {  width: 40px;  height: 40px;  object-fit: contain}.mhlw-title {  margin: clamp(8px, 1.8vw, 18px) 0 clamp(10px, 2vw, 20px);  font-family: var(--ff-title);  color: #333;  font-weight: 500;  font-size: 32px;  line-height: 1.9;  text-align: center;  letter-spacing: .05em}.mhlw-list {  width: min(550px, 100%);  margin: clamp(10px, 2vw, 20px) auto 0;  padding: 0;  list-style: none}.mhlw-list li {  position: relative;  padding-left: 1.6em;  margin: .9em 0;  font-size: 24px;  color: #333}.mhlw-list li::before {  content: "";  position: absolute;  left: .2em;  top: .9em;  width: .5em;  height: .5em;  border-radius: 50%;  background: #2a63a6;  box-shadow: 0 0 0 4px #2a63a626}.mhlw-list li a {  text-decoration: none;}@media(max-width:767px) {  .mhlw-box {    padding: 20px 10px  }  .mhlw-box::before {    inset: 2px  }  .mhlw-emblem {    width: 50px;    height: 50px  }  .mhlw-emblem img {    width: 36px;    height: 36px  }  .mhlw-title {    font-size: 20px;  }  .mhlw-list li {    font-size: 15px;  }}/* ========== Review（金帯） ========== */.review-band {  background: #fbf8f0;  position: relative;  overflow: hidden;  height: 510px;}.review-band__top {  position: relative;  background: linear-gradient(180deg, var(--c-main), color-mix(in oklab, var(--c-main) 80%, #000 20%));  color: #fff;  padding: clamp(28px, 5vw, 48px) 0 70px}.review-band__title {  color: #DECB85;  font-family: "PT Serif", serif;  font-style: italic;  font-size: 96px;  font-weight: 500;  opacity: .70;  letter-spacing: .06em;  margin: 0;  line-height: 1.0;}.review-band__lead {  margin: 0;  opacity: .9}.review-band__skew {  position: absolute;  left: 0;  right: 0;  bottom: -1px;  height: 70px;  background: #fbf8f0;  clip-path: polygon(0 98%, 100% 0, 100% 100%, 0 100%)}.review-band__slider {  position: absolute;  padding: 34px 0 50px;  top: 158px;  right: 0;  bottom: 0;  left: 0;  margin: auto;}.review-card {  height: 160px;  border-radius: 12px;  background: #d9d9d9;  box-shadow: 0 8px 24px #0001}.review-nav {  color: #c3c6cc;  top: 72%}.review-swiper .swiper-pagination {  bottom: 6px !important}.review-swiper .swiper-pagination-bullet {  background: #cfd7e4;  opacity: 1}.review-swiper .swiper-pagination-bullet-active {  background: var(--c-main)}.swiper,swiper-container {  max-width: 1000px;}/* Review：カードの中身を整える */.review-card {  height: auto;  background: #fff;  color: #26344b;  border-radius: 12px;  box-shadow: 0 10px 26px rgba(0, 0, 0, .08);  border: 1px solid rgba(0, 0, 0, .06);  padding: 16px 16px 14px;  display: grid;  grid-template-rows: auto 1fr auto;}.review-card__hd {  display: flex;  align-items: center;  justify-content: space-between;  gap: 10px;  margin-bottom: 8px;}.review-card__badge {  display: inline-block;  padding: .35em .6em;  border-radius: 999px;  background: #f3f4f6;  font-weight: 700;  font-size: 12px;  color: #6b7280;  border: 1px solid rgba(0, 0, 0, .06);}.review-card__stars {  display: flex;  align-items: center;  gap: 4px;}.review-card__stars .s {  width: 18px;  height: 18px;  fill: #f5b942;  /* 星色（ゴールド寄り） */  filter: drop-shadow(0 1px 0 rgba(0, 0, 0, .08));}.review-card__stars .s.s--half {  fill: url(#star-grad);}.review-card__score {  font-weight: 700;  color: #8a6b2a;  margin-left: 4px;}.review-card__text {  margin: 8px 0 10px;  line-height: 1.9;  color: #334155;  quotes: "“" "”";}.review-card__text:before {  content: open-quote;  color: #d6b15f;  font-size: 18px;  margin-right: 2px;}.review-card__text:after {  content: close-quote;  color: #d6b15f;  font-size: 18px;  margin-left: 2px;}.review-card__ft {  display: flex;  align-items: center;  justify-content: space-between;  font-size: 13px;  color: #64748b;}.review-card__name {  font-weight: 700;  color: #334155;}.review-card__date {  font-variant-numeric: tabular-nums;}/* Swiper調整（カード内余白分） */#review .swiper-slide {  height: auto;  display: flex;}#review .swiper-slide>.review-card {  width: 100%;}/* ========== NEWS ========== */.news {  padding: 0 0 50px;  background: #fbf8f0;}.news-flex {  display: flex;  gap: 50px;  justify-content: space-between;}.news-heading .en {  color: #BDA653;  font-size: 20px;}.news-heading .ja {  font-size: 30px;  font-family: 'Zen Old Mincho';  margin: 0;}.news-list {  flex: 1;}@media(max-width:768px) {  .news-flex {    display: block;  }}/* ========== INFORMATION ========== */#information {  margin: 100px 0;}.info-block {  padding: clamp(40px, 6vw, 70px) 0}.info-grid {  max-width: 700px;  display: flex;  justify-content: flex-start;  gap: 2em;  align-items: center;}@media(max-width:1024px) {  .info-grid {    grid-template-columns: 1fr  }}.info-side {  display: flex;  gap: 14px}.info-main {  max-width: 500px;}.vcard {  background: #fff;  border: 1px solid #0002;  box-shadow: 0 8px 20px #0001;  border-radius: 6px;  padding: 10px 8px;  text-align: center}.vcard span {  display: block;  writing-mode: vertical-rl;  text-orientation: mixed;  font-family: var(--ff-title);  color: var(--c-main);  font-weight: 700;  letter-spacing: .08em}.vcard--shop span {  font-size: 24px}.vcard--parking span {  font-size: 22px}.info-photo img {  border-radius: 6px}.info-head {  display: flex;  align-items: center;  gap: 16px;  margin-bottom: 12px}.info-head .en {  font: 700 36px/1 var(--ff-title);  color: var(--c-accent);  letter-spacing: .14em}.info-head .en::after {  content: "";  display: block;  height: 2px;  width: 140px;  background: var(--c-accent);  margin-top: 10px}.info-head .ja {  font: 700 18px/1 var(--ff-body);  color: var(--c-accent);}.info-place {  position: relative;  background: #e9eff8;  border-radius: 6px;  box-shadow: 0 8px 16px #0001 inset;  padding: 14px 18px;  margin: 14px 0 18px;  color: #163454;  font-weight: 700}.info-place .ribbon {  position: absolute;  left: -26px;  top: 14px;  width: 0;  height: 0;  border-style: solid;  border-width: 12px 26px 12px 0;  border-color: transparent #243b63 transparent transparent;  filter: drop-shadow(0 4px 4px #0002)}.info-points {  list-style: none;  margin: 10px 0 14px;  padding: 0;  display: grid;  gap: 12px}.info-points li {  display: flex;  gap: 10px;  color: #333}.info-points .chk {  width: 18px;  height: 18px;  border-radius: 4px;  background: linear-gradient(180deg, var(--c-main), color-mix(in oklab, var(--c-main) 70%, #000 30%));  box-shadow: 0 2px 0 #0002 inset;  position: relative;  margin-top: .35em;  flex: 0 0 18px}.info-points .chk::after {  content: "";  position: absolute;  left: 4px;  top: 1px;  width: 8px;  height: 12px;  border-right: 2px solid #fff;  border-bottom: 2px solid #fff;  transform: rotate(45deg)}.info-points strong {  color: var(--c-accent);}.info-more {  display: inline-flex;  gap: 8px;  color: #12345a;  font-weight: 700;  text-decoration: none;  border-bottom: 1px solid currentColor;  padding-bottom: 2px;  margin-top: 6px}.info-hero img {  border-radius: 10px;  clip-path: polygon(6% 0, 100% 0, 100% 100%, 0 100%, 0 12%);  box-shadow: 0 16px 32px #0002}/* ========== PICK UP ========== */.pickup {  position: relative;  padding: 100px 0;}.pickup__hero {  background-size: cover;  background-position: center;  min-height: 260px;  display: flex;  align-items: flex-end}@media(min-width:992px) {  .pickup__hero {    min-height: 600px;    background-size: contain;    background-repeat: no-repeat;    background-position: center;  }}.pickup__head {  position: absolute;  top: 0;  text-align: center;  padding: 26px 0 34px;  width: 100%;}.pickup__en {  margin: 0 0 6px;  font: 700 clamp(18px, 2.4vw, 28px)/1 var(--ff-title);  letter-spacing: .18em;  color: var(--c-accent);}.pickup__ja {  margin: 0;  font: 700 clamp(18px, 2.2vw, 24px)/1.6 var(--ff-title);  color: var(--c-accent);  letter-spacing: .08em}.pickup__panel {  position: relative;  margin-top: -36px}.pickup__panel .container {  background: #fff;  border: 1px solid #0002;  box-shadow: 0 18px 40px #0002;  padding: clamp(18px, 4vw, 50px)}.pickup__grid {  display: grid;  gap: clamp(18px, 3vw, 50px);  grid-template-columns: 1fr}@media(min-width:992px) {  .pickup__grid {    grid-template-columns: repeat(3, 1fr)  }}@media(max-width:768px) {  .pickup__hero {    background-size: contain;    background-position: top;    background-repeat: no-repeat;    min-height: 260px;  }}.pickup__title {  text-align: center;  margin: .2em 0 .4em;  font: 700 clamp(18px, 2.2vw, 24px)/1.6 var(--ff-title);  color: var(--c-accent);  letter-spacing: .12em}.pickup__thumb {  position: relative;  display: block;  overflow: hidden;}.pickup__badge {  position: absolute;  right: 10px;  bottom: 10px;  background: #ffffffd8;  color: var(--c-accent);  font: 700 12px/1 var(--ff-body);  padding: .5em .8em;  border-radius: 4px;  border: 1px solid #0001}.pickup__text {  margin: 1em 0 0;  color: #2b2b2b;  font-size: clamp(14px, 1.6vw, 16px);  line-height: 2;  text-align: justify}/* ========== 3つの治療方針 ========== */.policy3 {  background-image: url("img/policy3_mask.png");  background-repeat: no-repeat;  background-size: auto;  background-position: left calc(100% - 60px);  margin: 100px 0;}.policy3__hero {  position: relative;  overflow: hidden;  background-image: url("img/policy3_bg.jpg");  background-size: cover;  background-position: center;  aspect-ratio: 1920 / 1082;}.policy3__bg {  position: relative;  height: clamp(220px, 36vw, 420px);  background: #ddd center/cover no-repeat}.policy3__watermark {  position: absolute;  inset: auto 0 100% 0;  margin: auto;  width: 100%;  text-align: center;  translate: 0 calc(-100% - 12px);  font: 700 clamp(44px, 9vw, 84px)/1 var(--ff-title);  color: #c9a06324;  letter-spacing: .08em}.policy3__banner {  position: absolute;  inset: auto 0 0 0;  margin: auto;  width: clamp(140px, 16vw, 200px);  height: clamp(240px, 34vw, 360px);  background: linear-gradient(180deg, color-mix(in oklab, var(--c-accent) 92%, #000 8%), color-mix(in oklab, var(--c-accent) 70%, #000 30%));  clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%);  box-shadow: 0 18px 40px #0003;  display: grid;  place-items: center;  padding: 16px 0}.policy3__banner::after {  content: "";  position: absolute;  inset: auto 0 0 0;  height: 22%;  background: color-mix(in oklab, var(--c-accent) 95%, #000 5%);  clip-path: inherit;  filter: brightness(.9)}.policy3__clinic,.policy3__ttl,.policy3__num {  position: relative;  z-index: 1;  color: #fff;  writing-mode: vertical-rl;  text-orientation: mixed}.policy3__clinic {  font: 700 clamp(11px, 1.4vw, 13px)/1.5 var(--ff-body);  letter-spacing: .18em;  opacity: .9}.policy3__num {  font: 700 clamp(26px, 4vw, 36px)/1 var(--ff-title);  color: #d6a63e;  margin-block: .4em}.policy3__ttl {  font: 700 clamp(20px, 3.2vw, 28px)/1.6 var(--ff-title);  letter-spacing: .12em}.policy3__cards {  margin-top: clamp(18px, 4vw, 26px);  display: grid;  gap: clamp(14px, 2.4vw, 22px);  grid-template-columns: 1fr}@media(min-width:992px) {  .policy3__cards {    grid-template-columns: repeat(3, 1fr)  }}.p3card {  background: #fff;  overflow: hidden;  box-shadow: 0 18px 36px #0002;  display: grid;  grid-template-rows: auto auto 1fr}.p3card__label {  position: relative;  display: flex;  gap: 12px;  align-items: center;  margin: -25px 0;  padding: 14px 16px;  color: #fff;  background: #102c57de;  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%)}.p3card__idx {  font: 700 18px/1 var(--ff-title);  opacity: .9}.p3card__body {  padding: 44px 16px 18px}.p3card__body p {  margin: 0;  color: #2b2b2b;  font-size: 15px;  line-height: 1.9;  text-align: justify}/* ========== MENU ========== */.menu2 {  isolation: isolate;  background-image: url("img/clinic_4-2-1.jpg");  background-size: cover;  background-position: center;  aspect-ratio: 1920 / 692;  padding: clamp(40px, 6vw, 100px) 0}.menu2__bg {  position: absolute;  inset: 0;  z-index: 0;  background: center/cover no-repeat;  filter: grayscale(10%) brightness(1.15);  opacity: .25}.menu2>.container {  z-index: 1}.menu2__head {  margin-bottom: clamp(18px, 4vw, 32px);  margin: 0 auto;  text-align: center;  padding: 26px 0 34px;}.menu2__en {  font-family: "PT Serif", serif;  font-style: italic;  margin: 0;  font-weight: 500;  font-size: 50px;  letter-spacing: .18em;  color: var(--c-accent);  line-height: 1.5;}.menu2__ja {  margin: .3em 0 0;  font: 700 clamp(16px, 2.4vw, 22px)/1.8 var(--ff-title);  color: var(--c-accent);  letter-spacing: .12em}.menu2__row {  display: grid;  gap: clamp(12px, 2vw, 18px);  grid-template-columns: minmax(220px, 280px) 1fr;  align-items: start;  margin-top: clamp(16px, 3vw, 24px)}@media(max-width:960px) {  .menu2__row {    grid-template-columns: 1fr  }}.menu2__cat {  position: relative;  color: #fff;  font-family: var(--ff-title);  background: color-mix(in oklab, var(--c-accent) 92%, #000 8%);  min-height: 96px;  display: grid;  place-items: center;  padding: 10px 18px;  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);  box-shadow: 0 16px 32px #0002}.menu2__cat span {  display: block;  text-align: center;  text-orientation: mixed;  letter-spacing: .14em;  font-weight: 500;  font-size: clamp(18px, 2.4vw, 22px);  line-height: 1.5;}@media(max-width:960px) {  .menu2__cat span {    writing-mode: horizontal-tb;    letter-spacing: .06em  }  .menu2__cat {    clip-path: none  }}.menu2__tiles {  display: grid;  gap: clamp(12px, 1.6vw, 16px);  grid-template-columns: repeat(6, minmax(140px, 1fr));  min-height: 96px;}@media(max-width:1200px) {  .menu2__tiles {    grid-template-columns: repeat(4, minmax(140px, 1fr))  }}@media(max-width:760px) {  .menu2__tiles {    grid-template-columns: repeat(2, 1fr)  }}.tile {  display: grid;  place-items: center;  text-align: center;  text-decoration: none;  background: #fff;  color: #27324a;  border: 1px solid #0002;  box-shadow: 0 10px 24px #0001;  min-height: 86px;  padding: 8px 10px;  font-family: var(--ff-title);  font-weight: 700;  letter-spacing: .02em}.tile small {  font: 700 .9em/1.2 var(--ff-body)}.tile:hover {  transform: translateY(-1px);  box-shadow: 0 14px 30px #0002}/* ========== TROUBLE ========== */.trouble {  position: relative;}.trouble__head {  text-align: center;  position: absolute;  top: 10%;  left: 0;  right: 0;}.trouble__en {  font-family: "PT Serif", serif;  font-style: italic;  margin: 0;  font-weight: 500;  font-size: 50px;  letter-spacing: .18em;  color: var(--c-accent);  line-height: 1.5;}.trouble__ja {  margin: 0 0 clamp(22px, 4vw, 36px);  font: 700 clamp(16px, 2.3vw, 22px)/1.9 var(--ff-title);  color: var(--c-accent);}.trouble-bg {  position: relative;  width: 100%;  aspect-ratio: 16 / 8;  /* PC背景の比率 */  background: url('img/trouble_bg.jpg') no-repeat center/cover;}/* スマホでは背景切り替え */@media (max-width: 768px) {  .trouble-bg {    aspect-ratio: 9 / 16;    /* SP画像の比率 */    background: url('img/trouble_sp_bg.jpg') no-repeat center/cover;  }}.trouble-bg .link {  position: absolute;  display: block;  width: 10%;  /* ← 横幅を狭く */  height: 20%;  /* ← 縦幅は少し大きめ */  text-indent: -9999px;}/* ==== PC用配置 ==== *//* 1行目 */.trouble-bg .link1 {  top: 40%;  left: 16%;}.trouble-bg .link2 {  top: 40%;  left: 30%;}.trouble-bg .link3 {  top: 40%;  left: 45%;}.trouble-bg .link4 {  top: 40%;  left: 60%;}.trouble-bg .link5 {  top: 40%;  left: 74%;}.trouble-bg .link6 {  top: 57%;  left: 23%;}.trouble-bg .link7 {  top: 57%;  left: 37.5%;}.trouble-bg .link8 {  top: 57%;  left: 52%;}.trouble-bg .link9 {  top: 57%;  left: 67%;}/* ==== スマホ用配置 ==== */@media (max-width: 768px) {  .trouble-bg .link {    width: 44%;    /* スマホ用に広げる */    height: 15%;  }  /* 1段目 */  .trouble-bg .link1 {    top: 19%;    left: 4%;  }  .trouble-bg .link2 {    top: 19%;    left: 51%;  }  /* 2段目 */  .trouble-bg .link3 {    top: 36%;    left: 4%;  }  .trouble-bg .link4 {    top: 36%;    left: 51%;  }  /* 3段目 */  .trouble-bg .link5 {    top: 54%;    left: 4%;  }  .trouble-bg .link6 {    top: 54%;    left: 51%;  }  /* 4段目 */  .trouble-bg .link7 {    top: 71%;    left: 4%;  }  .trouble-bg .link8 {    display: none;  }  .trouble-bg .link9 {    top: 71%;    left: 51%;  }}/* ========== ENCOUNTER ========== */.encounter {  position: relative;  background: #f4f7fb;  overflow: hidden;  background-image: url("img/encounter_bg.jpg");  background-size: cover;  background-position: top;  /* aspect-ratio: 1920 / 2770; */}.encounter__wm {  position: absolute;  left: 4%;  top: 34px;  z-index: 1;  font: 700 clamp(44px, 8vw, 86px)/1 var(--ff-title);  color: #c9a0632e;  letter-spacing: .08em}.encounter .container {  position: relative;  z-index: 2;  max-width: 980px;}.encounter__head {  text-align: left;  padding: clamp(28px, 6vw, 72px) 0 10px}.encounter__en {  font-family: "PT Serif", serif;  font-style: italic;  margin: 0;  font-weight: 500;  font-size: 64px;  letter-spacing: .18em;  color: var(--c-accent);  line-height: 1.5;  margin-left: 5rem;}.encounter__ja {  margin: 0 0 6px;  font: 500 clamp(26px, 3.2vw, 48px)/1.8 var(--ff-title);  color: var(--c-accent);}.encounter__ja span {  background: linear-gradient(transparent 77%, #ffff00 50%);}.encounter__lead {  margin: 0;  font: 500 clamp(20px, 2vw, 32px)/2 var(--ff-title);  color: var(--c-accent);}.encounter__row {  display: grid;  gap: 0;  grid-template-columns: 280px 1fr;  align-items: center;  margin: 105px 0 50px;}.encounter__row--alt {  margin-top: clamp(28px, 6vw, 54px)}figure.encounter__photo {  margin: 0;}@media(max-width:960px) {  .encounter__row {    grid-template-columns: 1fr  }}.encounter__photo img {  box-shadow: 0 18px 36px #0002}.encounter__panel {  background: var(--c-accent);  color: #fff;  padding: 25px;  position: relative;  box-shadow: 0 18px 36px #0003;}.phead__title {  font: 500 24px/1 var(--ff-title);  margin-bottom: 0.5em;}.phead {  display: flex;  gap: 25px;  align-items: flex-end;  border-bottom: 1px solid #fff5;  padding-bottom: 10px}.phead__role {  height: 60px;  width: 60px;  background: #ffffff6b;  padding: 0.4em;  font: 500 20px/1 var(--ff-title);  letter-spacing: 2px;  line-height: 1.1;}.phead__name .kana {  text-align: center;}.phead__name .jp {  font: 500 clamp(20px, 2.6vw, 42px)/1.4 var(--ff-title);  line-height: 1;}.phead .en {  font: 500 clamp(20px, 2.6vw, 30px)/1.4 var(--ff-title);  line-height: 1;  opacity: .6}.pmeta {  display: grid;  gap: 16px;  grid-template-columns: 1fr 1fr;  margin-top: 25px}@media(max-width:760px) {  .pmeta {    grid-template-columns: 1fr  }}.pmeta__col h3 {  margin: 0 0 6px;  font: 500 16px/1 var(--ff-body);  letter-spacing: .12em;  opacity: .9}.pmeta__col ul {  margin: 0;  padding-left: 1.2em;  font: 400 16px/1.9 var(--ff-body);  opacity: .95}.encounter__stats {  list-style: none;  margin: 2em 0;  padding: 0;  display: flex;  justify-content: center;  gap: 12px}.encounter__stats li {  width: 334px;  background-image: url("img/Rectangle41.png");  background-size: cover;  background-position: center;  aspect-ratio: 332 / 106;  color: var(--c-accent);  font: 500 30px/1 var(--ff-title);  padding: 1.2em 1em;  box-shadow: 0 10px 24px #0002;  text-align: center;}.encounter__quote {  margin: 6px 0;  font: 500 clamp(16px, 2.2vw, 24px)/2 var(--ff-title);  color: #fff;  text-align: center}.encounter__body {  margin: 0 0 100px;  color: #eef3ff;  line-height: 1.9;  text-align: justify}/* ====== 基本 ====== */:root {  --c-navy: #22364f;  --c-gold: #d6b15f;  --c-ink: #2c3a4a;  --c-gray: #6b7280;  --c-line: #e6e8ee;  --container: min(1100px, calc(100% - 32px));}/* ====== 4つの理由 ====== */.reasons {  padding: 48px 0 72px;  background: #fff;  color: var(--c-ink);}.reasons__intro {  position: relative;  font: 500 30px/1 var(--ff-title);  text-align: center;  font-size: 50px;  letter-spacing: .08em;  margin-bottom: 70px;  --vr-color: #333;  /* 縦線の色 */  --vr-width: 1px;  /* 縦線の太さ */  --vr-height: 80px;  /* 縦線の長さ */  --vr-offset: 14px;}.reasons__intro em {  color: var(--c-gold);  font-style: normal;}.reasons__intro::before {  content: "";  position: absolute;  left: 50%;  top: calc(130% + var(--vr-offset));  transform: translateX(-50%);  width: var(--vr-width);  height: var(--vr-height);  background: var(--vr-color);}.reason__bg {  background-image: url("img/reasons_hero02.jpg");  background-size: cover;  background-position: center;}/* Top 2カラム */.reasons__top {  display: flex;  justify-content: flex-end;}.reasons__doctor {  margin: 0;  aspect-ratio: 3/4;  overflow: hidden;  border-radius: 6px;}.reasons__doctor img {  width: 100%;  height: 100%;  object-fit: cover;  display: block;}/* 右カラム */.reasons__right {  max-width: 700px;  /* 適度に幅を制限（必要に応じて調整） */  flex: 1;  margin: 100px 0px;}/* タイトル白カード */.reasons__titlecard {  background: #fff;  box-shadow: 0 8px 24px rgba(0, 0, 0, .15);  padding: 22px 24px;  margin: 0 0 20px;  display: flex;  justify-content: center;  gap: 0;  align-items: center;}.reasons__bignum {  font-size: 140px;  line-height: 1;  color: var(--c-gold);  font-family: "PT Serif", serif;  font-style: italic;}.reasons__titlelines {  font: 500 30px/1 var(--ff-title);  width: 370px;}.reasons__titlelines p {  color: #333;  margin: 0 0 4px;  text-align: center;}.reasons__titlelines .left {  text-align: left !important;}.reasons__titlelines .left span {  letter-spacing: .06em;  font-size: 50px;}/* 2×2カード */.reasons__grid {  display: grid;  grid-template-columns: repeat(2, 1fr);  gap: 20px;}.reason {  background: #fff;  padding: 12px;  display: grid;  grid-template-rows: auto auto 1fr;  gap: 10px;  box-shadow: 0 6px 16px rgba(0, 0, 0, .15);}.reason__hd {  font: 500 30px/1 var(--ff-title);  color: #333;  display: grid;  gap: 6px;}.reason__no {  font-size: 20px;}.reason__no b {  font-weight: 700;  font-size: 20px;}.reason__ttl {  font-size: 20px;  line-height: 1.6;  margin: 0;}.reason__ph {  margin: 0;  overflow: hidden;  aspect-ratio: 5/3;}.reason__ph img {  width: 100%;  height: 100%;  object-fit: cover;  display: block;}.reason__bullets {  margin: 0;  padding-left: 0;  color: #475569;  font-size: 18px;  line-height: 1.7;}.reason__bullets li {  list-style: none;}.reason__bullets li+li {  margin-top: 2px;  list-style: none;}/* 説明文 */.reasons__lead {  margin-top: 18px;}.reasons__lead p {  font-size: 18px;  line-height: 1.95;  color: #333;  margin: 0;  padding-top: 16px;}/* ===== Confidence Section ===== */.confidence {  background: #fdfcf8;  padding: 60px 0;  text-align: center;  background-image: url("img/Rectangle 56.png");  background-repeat: no-repeat;  background-size: 100% auto;  background-position: left calc(50% - 50px);}.confidence__inner {  display: grid;  grid-template-columns: 1fr 0.7fr;  align-items: center;  gap: 40px;}.confidence__ph {  margin: 0;  min-width: 843px;}.confidence__ph img {  width: 100%;  height: auto;  display: block;}.confidence__text {  text-align: left;  writing-mode: vertical-rl;  /* 縦書き風 */  text-orientation: upright;}.confidence__title {  font: 500 60px/1 var(--ff-title);  line-height: 1.5;  color: #333;  margin-right: 0;}.confidence__sub {  font-size: 40px;  color: #333;  margin-top: 10rem;  display: block;  line-height: 2;}.confidence__sub em {  font-style: normal;  text-decoration: underline;  text-decoration-color: #d6b15f;  text-underline-offset: -0.2em;  text-decoration-thickness: 7px;}.confidence__lead {  max-width: 960px;  margin: 40px auto 0;  font-size: 18px;  color: #444;  line-height: 1.9;}/* ===== Responsive ===== */@media (max-width: 900px) {  .confidence__inner {    grid-template-columns: 1fr;    gap: 24px;  }  .confidence__text {    writing-mode: horizontal-tb;    /* モバイルは横書き */    text-align: center;  }}/* ====== 下段 3ボックス ====== *//* ===== セクション全体 ===== */.treatment-features {  padding: 100px 0;  background: #fdfcf8;}.treatment-features .container {  display: grid;  gap: 105px;}/* ===== 各ボックス ===== */.feature {  position: relative;  display: grid;  grid-template-columns: 1fr 1fr;  gap: 50px;  padding: 45px;  border: 1px solid #dcdcdc;  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);  align-items: center;  background: #fff;}.right-align {  border: 3px solid #536C92;  margin-left: 150px;}.left-align {  margin-right: 150px;}.feature--mouthpiece {  border: 3px solid #BDA653;  grid-template-columns: 1fr 1fr;}/* 画像 */.feature__image {  margin: 0;}.feature__image img {  width: 100%;  height: auto;}.feature__image_s {  align-self: flex-end;  /* 右端に寄せる */  max-width: 40%;  height: auto;  margin-top: -70px;}/* コンテンツ */.feature__content {  display: flex;  flex-direction: column;  gap: 12px;  position: relative;}.feature__title {  position: relative;  /* 擬似要素の基準にする */  font: 500 32px/1 var(--ff-title);  line-height: 1.6;  margin: 0;  padding-bottom: 6px;  margin-bottom: 15px;}/* 擬似要素で下線を引く */.feature__title::before {  content: "";  position: absolute;  left: -150px;  /* ← 左にはみ出す量を調整 */  bottom: -4px;  width: calc(100% + 20px);  /* ← はみ出した分だけ幅を広げる */  height: 3px;  background-color: #536C92;}.feature__title--gold {  position: relative;  /* 擬似要素の基準にする */  font: 500 32px/1 var(--ff-title);  line-height: 1.6;  margin: 0;  padding-bottom: 6px;  margin-bottom: 15px;}/* 擬似要素で下線を引く */.feature__title--gold::before {  content: "";  position: absolute;  right: -150px;  bottom: -4px;  width: calc(100% + 20px);  /* ← はみ出した分だけ幅を広げる */  height: 3px;  background-color: #BDA653;}.feature__lead {  font-size: 14px;  color: #555;}/* 見出しタグ */.feature__highlight {  font: 500 20px / 1 var(--ff-title);  padding: 15px 6px;  color: #ffffff;  text-align: center;  background: #536C92;}.feature__highlight--gold {  background: #BDA653;  text-align: center;  border-color: #d6b15f;}/* バッジ */.feature__badge {  height: 130px;  width: 130px;  position: absolute;  top: -60px;  left: -60px;  background: #536C92;  color: #fff;  border-radius: 999px;  font-weight: bold;  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);  display: flex;  justify-content: center;  align-items: center;  text-align: center;}.feature__badge--gold {  background: #BDA653;}/* リスト */.feature__list {  margin: 0;  padding-left: 1.2em;  font-size: 18px;  color: #333;  list-style: none;}.feature__list li+li {  margin-top: 4px;}/*透かし文字*/.feature__watermark {  font: 500 48px / 1 var(--ff-title);  color: #536C92;  opacity: 0.5;}.feature__watermark--gold {  font: 500 48px / 1 var(--ff-title);  color: #BDA653;  text-align: right;  opacity: 0.5;}/* ボタン */.btn-more {  font: 500 20px / 1 var(--ff-title);  display: inline-block;  padding: 15px 40px;  background: #536C92;  color: #fff;  text-decoration: none;  transition: 0.3s ease;  position: absolute;  bottom: -25px;  right: 107px;}.btn-more:hover {  background: #2f4595;}.btn-more--gold {  background: #BDA653;}.btn-more--gold:hover {  background: #c19b47;}/* ===== レスポンシブ ===== */@media (max-width: 900px) {  .feature {    grid-template-columns: 1fr;  }  .feature--mouthpiece {    grid-template-columns: 1fr;  }}/* ========== Payment ========== */.payment2 {  position: relative;  isolation: isolate;  padding: clamp(40px, 7vw, 80px) 0;  overflow: hidden}.payment2__bg {  position: absolute;  inset: 0;  z-index: 0;  background: center/cover no-repeat;  filter: grayscale(10%) brightness(1.06);  opacity: .55}.payment2 .container {  position: relative;  z-index: 1}.payment2__panel {  width: min(100%, 1060px);  margin-inline: auto;  background: #fff;  box-shadow: 0 14px 36px #0002;  padding: clamp(24px, 5vw, 44px) clamp(18px, 4vw, 56px);  text-align: center}.payment2__title {  display: inline-block;  margin: 0 0 18px;  padding: .5em 1.2em;  font-family: var(--ff-title);  font-weight: 500;  letter-spacing: .06em;  color: #2a3b56;  border: 1px solid #0009;  border-radius: 2px}.payment2__lead,.payment2__note {  margin: .8em 0;  font-size: 20px;  font-weight: 500;  color: #2a3b56;  line-height: 2;  font-family: var(--ff-title);}.payment2__note .hl {  color: var(--c-accent);  font-family: var(--ff-title);  font-weight: 500;  font-size: 1.5em}.payment2__brands {  list-style: none;  padding: 0;  margin: clamp(10px, 2vw, 18px) 0;  display: flex;  flex-wrap: wrap;  gap: clamp(12px, 2vw, 22px);  align-items: center;  justify-content: center}.payment2__brands img {  height: 44px}@media(max-width:600px) {  .payment2__brands img {    height: 34px  }}/* ========== Photo/Blog/Calendar/Access ========== */.pg {  background: #FEFDF6;  position: relative;  overflow: hidden;  padding: clamp(36px, 6vw, 64px) 0}.pg__frame {  position: relative;  padding: clamp(14px, 2vw, 18px);  margin-bottom: clamp(24px, 5vw, 40px)}.pg__title {  position: absolute;  left: -12px;  top: -59px;  right: -12px;  pointer-events: none;  z-index: 1;}.pg__p,.pg__g {  font-family: var(--ff-title);  font-weight: 700;  letter-spacing: .16em;  color: var(--c-accent);  font-size: 64px;}.pg__p span {  color: #bda653;}.pg__g {  align-self: flex-end}.pg__main {  max-width: 650px;  box-shadow: 10px 10px 0 #bda653;}.pg__thumbs {  position: absolute;  right: clamp(14px, 2vw, 18px);  top: clamp(18px, 2.6vw, 24px);  display: grid;  grid-template-columns: repeat(2, 1fr);  gap: 10px;  width: min(40%, 420px)}.pg__thumbs img {  box-shadow: 0 8px 18px #0001}.pg__bc {  display: grid;  gap: clamp(18px, 4vw, 40px);  grid-template-columns: 1fr 1fr;  align-items: start;  margin-top: clamp(18px, 3vw, 24px)}@media(max-width:900px) {  .pg__main {    margin: 20px 0 30px;  }  .pg__title {    left: 0;    top: -59px;    right: 0;    line-height: 1;  }  .pg__p,  .pg__g {    font-size: 25px;  }  .pg__bc {    grid-template-columns: 1fr  }  .pg__thumbs {    position: static;    width: min(100%, 420px);  }}.pg__hd {  margin: 0 0 8px;  padding-bottom: 8px;  border-bottom: 2px solid #1a2b4c59;  font: 700 clamp(18px, 2.6vw, 32px)/1 var(--ff-title);  color: var(--c-accent);}.lcp_catlist {  list-style: none;  margin: 0;  padding: 0}.lcp_catlist li {  padding: 12px 6px;  border-bottom: 2px dotted #bda653;  font-size: 18px;}.lcp_catlist li a {  padding-left: 20px;  vertical-align: top;}.pg__posts {  list-style: none;  margin: 0;  padding: 0}.pg__posts li {  display: grid;  grid-template-columns: 64px 110px 1fr;  align-items: center;  gap: 12px;  padding: 10px 6px;  border-bottom: 1px solid #0001}.pg__post-badge {  display: grid;  place-items: center;  width: 60px;  height: 40px;  border-radius: 2px;  background: #f3f2dc;  color: #b49b54;  font: 700 14px/1 var(--ff-title);  border: 1px solid #0001}.pg__posts time {  color: #666}.pg__posts a {  color: #2a3b56;  text-decoration: none}.pg__posts a:hover {  text-decoration: underline}a.richreserve3_home {  width: 100% !important;}span.richreserve3_head_icon {  left: 25% !important;}.epark_haisha_yoyaku_richreserve .richreserve3_head {  float: none !important;  width: 100% !important;}.rich_detail_calendar {  width: 100% !important;}.cal2 {  display: grid;  gap: 14px;  grid-template-columns: 1fr 1fr}@media(max-width:520px) {  .cal2 {    grid-template-columns: 1fr  }}.cal2__month {  background: #fff;  border: 1px solid #0001;  border-radius: 4px;  padding: 10px}.cal2__month h4 {  margin: 2px 0 8px;  text-align: center;  font: 700 16px/1 var(--ff-title);  color: #2a3b56}.cal2__grid {  list-style: none;  margin: 0;  padding: 0;  display: grid;  grid-template-columns: repeat(7, 1fr);  gap: 6px;  font-family: var(--ff-body)}.cal2__grid .wk {  color: #8aa0c2;  font-weight: 700;  font-size: 12px;  text-align: center}.cal2__grid .d,.cal2__grid .pad {  text-align: center;  padding: .35em 0;  background: #f6f7fb;  border-radius: 4px;  font-size: 13px}.cal2__grid .pad {  background: transparent}.pg__access {  background: #FEFDF6;  padding: 50px 0 0;}.pg__map {  margin-top: 12px}.pg__map-ph {  display: grid;  place-items: center;  background: #d6d9df;  color: #2a3b56;  font-weight: 700;}@media(min-width:900px) {  .pg__map-ph {    height: 450px  }}.pg__copy {  background: #FEFDF6;  text-align: center;  padding: 50px 0;}.pg__copy h4 {  margin: .2em 0 .6em;  font: 500 clamp(16px, 2.4vw, 24px)/1.8 var(--ff-title);  color: #2a3b56}.pg__copy p {  margin: 0 auto;  width: min(880px, 96%);  color: #57617a;  line-height: 2;  text-align: justify}.pg__mesh {  position: absolute;  right: -6%;  bottom: 4%;  width: 520px;  height: auto;  opacity: .25}/* ========== フッター ========== */.fcta {  position: relative;  isolation: isolate;  color: #fff;  padding: 80px 40px;  overflow: hidden}.fcta__bg {  position: absolute;  inset: 0;  z-index: -1;  background: center/cover no-repeat;  filter: grayscale(10%) contrast(1.05);  transform: scale(1.02)}.fcta__scrim {  position: absolute;  inset: 0;  z-index: 0;  background: color-mix(in oklab, var(--c-accent) 92%, #000 8%);  opacity: .95}.footer-logo {  max-width: 411px;  margin: 0 auto 50px;}.fcta__grid {  position: relative;  z-index: 1;  display: grid;  gap: clamp(16px, 3vw, 32px);  grid-template-columns: 1fr minmax(380px, 520px);  align-items: start}@media(max-width:768px) {  .fcta {    padding: 70px 3% 20px;  }  .fcta__grid {    display: block;    grid-template-columns: 1fr  }  .footer-logo {    max-width: 250px;    margin: 0 auto 50px;  }  .fcta__addr,  .fcta__note {    font-size: 14px !important;  }}.fcta__tellead {  margin: 0px 0px 0px 70px;  color: #cfe1ff;  font: 700 13px/1 var(--ff-body);  opacity: .9;  letter-spacing: .08em}.fcta__telrow {  display: flex;  align-items: center;  gap: 14px;  flex-wrap: wrap;  margin-bottom: 10px}.fcta__telicon {  display: grid;  place-items: center;  width: 36px;  height: 36px;  border-radius: 50%;  background: #fff;  color: var(--c-accent);  font-weight: 700;  transform: rotate(90deg);}.fcta__telnum {  font: 700 clamp(22px, 3.6vw, 30px)/1 var(--ff-title);  letter-spacing: .08em;  color: #fff;  text-decoration: none;  text-shadow: 0 2px 12px #0004}.fcta .btn {  padding: 10px 18px;  text-decoration: none}.fcta__web {  background: #BDA653;  color: #ffffff;  font: 500 clamp(16px, 2.4vw, 24px)/1.8 var(--ff-title);  border: none;  letter-spacing: 2px;}.fcta__addr {  margin: 8px 0 14px;  font-size: 20px;  font-style: normal;  line-height: 1.9;}.fcta__panel {  margin: 30px 0;}.fcta__table {  font-size: 20px;  border-collapse: collapse;  color: #e9f1ff;  border-top: 1px solid #fff4;  border-bottom: 1px solid #fff4}.fcta__table th,.fcta__table td {  padding: 10px 12px;  border-bottom: 1px solid #fff2;  text-align: center}.fcta__table thead th {  font-weight: 500;}.fcta__table tbody th {  text-align: left;  color: #fff;  font-weight: 500;}.fcta__note {  margin: .5em 0 0;  font-size: 18px;}.fcta__container {  max-width: 800px;  margin: 50px auto;}.fcta__bnrs_s {  display: grid;  gap: 12px;  grid-template-columns: repeat(3, 1fr);}.fcta__bnrs {  display: grid;  gap: 12px;  grid-template-columns: repeat(2, 1fr);  margin-top: 12px}.fcta__bnrs--small img {  width: 100%;  object-fit: cover;}.fcta__bnrs img {  width: 100%;  object-fit: cover;  box-shadow: 0 8px 18px #0003}.fcta__copy {  margin: 10px 0 0;  font-size: 12px;  opacity: .8;  text-align: center;}.fcta__panel {  background: #e5e5e5;  color: #2a354b;  box-shadow: 0 18px 40px #0004;  padding: 0 16px;  border: 1px solid #0001}.sitemap__group {  padding: 10px 0;  border-top: 1px solid #0002}.sitemap__group:first-of-type {  border-top: none}.sitemap__group h4 {  margin: 0 0 6px;  font: 700 14px/1 var(--ff-body);  color: #2a3b56}.sitemap__group ul {  margin: 0;  padding-left: 1em;  display: grid;  gap: .2em;  list-style: none;}.sitemap__group ul.cols {  grid-template-columns: repeat(3, minmax(0, 1fr))}.sitemap a {  color: #2a354b;  text-decoration: none}.sitemap a:hover {  text-decoration: underline}.fcta__pagetop {  position: fixed;  right: 20px;  bottom: 20px;  z-index: 5;  width: 44px;  height: 44px;  border-radius: 50%;  border: none;  cursor: pointer;  background: #d6b15f;  color: #23304b;  font-weight: 700;  box-shadow: 0 10px 24px #0004}.sp-footer-nav {  display: none;  /* PCでは非表示 */}@media screen and (max-width: 768px) {  .sp-footer-nav {    display: flex;    position: fixed;    bottom: 0;    left: 0;    width: 100%;    background: #102C57;    /* 紺色 */    border-top: 1px solid #fff;    z-index: 9999;  }  .sp-footer-nav__item {    flex: 1;    text-align: center;    color: #fff;    text-decoration: none;    font-size: 12px !important;    padding: 8px 0;  }  .sp-footer-nav__item i {    display: block;    font-size: 16px;    margin-bottom: 4px;  }}/* =========================================   タブレット用レスポンシブCSS   適用対象: 1024px 以下========================================= */@media screen and (max-width: 1024px) {  .kv__circle--gold {}  /* CTAボタン */  .kv__ctas {    position: static;    margin: 24px auto 0;    gap: 16px;    justify-content: center;  }  .kv__circle {    width: 160px;    height: 160px;  }}/* =========================================   スマホ用レスポンシブCSS   適用対象: 768px 以下========================================= */@media screen and (max-width: 768px) {  /* ---------- 共通設定 ---------- */  body {    font-size: 14px;    line-height: 1.7;    padding: 0;    margin: 0;  }  img {    max-width: 100%;    height: auto;    display: block;    width: 100%;  }  /* ---------- KVセクション ---------- */  .kv {    max-height: none;    padding-bottom: 24px;    height: 630px;  }  .kv__bg {    background-position: center;    background-size: cover;  }  .kv__mask {    display: none;  }  .kv__top {    display: none;  }  .kv__vlabels {    left: 10px;    top: 33%;    gap: 10px;  }  .kv__vlabel span:last-child {    font-size: 20px;  }  .kv__contact {    display: none;  }  .kv__catch {    text-align: center;    padding: 350px 0 0;    right: 0;    left: 0;  }  .kv__diamond {    width: 60%;  }  .kv__copy {    font-size: 25px;    line-height: 1.4;  }  /* CTAボタン */  .kv__ctas {    position: static;    margin: 24px auto 0;    gap: 16px;    justify-content: center;  }  .kv__circle {    width: 160px;    height: 160px;  }  /* ナビゲーション */  .kvnav {    display: none !important;    position: static;    clip-path: none;    background: var(--c-main);  }  .kvnav__list {    display: grid;    grid-template-columns: 1fr 1fr;    gap: 12px;    padding: 16px 8px;    text-align: center;  }  .kvnav__list li+li a::before {    display: none;  }  /* ---------- Pickup ---------- */  .pickup {    padding: 50px 0;  }  .pickup__grid {    grid-template-columns: 1fr;    gap: 24px;  }  .pickup__thumb img {    width: 100%;    height: auto;  }  /* ---------- Policy3 ---------- */  .policy3 {    background-position: center;    margin: 60px 0;  }  .policy3__hero {    background-image: url(img/policy3_sp_bg.png);    aspect-ratio: 440 / 614;  }  .policy3__cards {    grid-template-columns: 1fr;    gap: 16px;  }  /* ---------- Featureセクション ---------- */  .feature {    grid-template-columns: 1fr;    padding: 10px;    gap: 20px;    margin: 0;  }  .feature__badge {    position: static;    top: -30px;    left: -30px;    width: 80px;    height: 80px;    font-size: 12px;  }  .feature__title,  .feature__title--gold {    font-size: 22px;  }  .feature__title::before {    display: none;  }  .feature__title--gold::before {    display: none;  }  .feature__list {    font-size: 14px;  }  .treatment-features .container {    display: grid;    gap: 30px;  }  /* ボタン */  .btn-more {    position: static;    display: block;    margin: 20px auto 0;  }  /* ---------- Review ---------- */  .review-band {    padding: 0;  }  .review-band__title {    font-size: 48px;  }  .review-card {    padding: 14px;    font-size: 14px;    width: 85% !important;    margin: 0 auto;  }  /* ---------- Information ---------- */  #information {    margin: 0 0 50px;  }  /* ---------- Menu ---------- */  .menu2__row {    grid-template-columns: 1fr;  }  .menu2__tiles {    grid-template-columns: 1fr 1fr;  }  /* ---------- Troubleセクション ---------- */  .trouble {}  /* ---------- Encounter ---------- */  .encounter {    background-image: url(img/encounter_sp_bg.png);    aspect-ratio: auto;    ;  }  .encounter__en {    font-size: 2rem;    letter-spacing: .18em;    color: var(--c-accent);    line-height: 1.5;    margin-left: 0;    text-align: center;  }  .encounter__row {    grid-template-columns: 1fr;    gap: 10px;    margin: 0;  }  .encounter__stats li {    width: 40%;    font: 500 16px / 1 var(--ff-title);  }  .encounter__photo img {    width: 150px;    margin: 0 auto;  }  .phead {    display: block;  }  .phead__role {    height: auto;    width: auto;  }  .phead__name {    margin: 10px 0;  }  .phead__name .kana {    text-align: left;  }  .phead__name .jp {    font-size: 28px;  }  /* ---------- reason ---------- */  .reason {    margin-bottom: 30px;  }  .reasons__intro {    padding: 0 10px;    font-size: 2rem;  }  .reason__bg {    background-image: none;  }  .reasons__right {    margin: 50px 0 0;  }  .reasons__titlecard {    display: none;  }  .reasons__grid {    display: block;  }  /* ---------- confidence ---------- */  .confidence {    padding: 60px 0 0;  }  .confidence__inner {    display: block;    text-align: center;  }  /* 画像幅を親幅に合わせる */  .confidence__ph {    min-width: auto;    /* ←843px固定を解除 */    width: 100%;    /* ←スマホ時は全幅表示 */    margin: 0 auto 24px;    /* 中央寄せ */  }  .confidence__ph img {    width: 100%;    height: auto;    display: block;    object-fit: cover;  }  /* 縦書き風タイトルを横書きに */  .confidence__text {    writing-mode: horizontal-tb;    /* 横書きに変更 */    text-align: center;    margin: 0 auto;  }  /* タイトル調整 */  .confidence__title {    font-size: 28px;    line-height: 1.4;  }  /* サブタイトル */  .confidence__sub {    display: block;    font-size: 18px;    margin-top: 12px;  }  /* リード文 */  .confidence__lead {    padding: 0 16px;    font-size: 14px;    text-align: center;    margin-top: 16px;  }  .treatment-features {    padding: 20px 0;    background: #fdfcf8;  }  /* ---------- Footer CTA ---------- */  .fcta__grid {    grid-template-columns: 1fr;    gap: 20px;  }  .fcta__tellead {    margin: 0;    text-align: center;  }  .fcta__telrow {    justify-content: center;  }  .fcta__table {    font-size: 14px;    display: block;    overflow-x: auto;  }  .fcta__bnrs {    grid-template-columns: 1fr;    gap: 8px;  }  .fcta__bnrs_s {    grid-template-columns: 1fr 1fr;    gap: 8px;  }}/* ← メディアクエリ終了 */@media(max-width:560px) {  .fcta__pagetop {    right: 26px;    bottom: 65px;    width: 35px;    height: 35px;  }}/*-----------------------------下層ページ（共通）------------------------------*/h1.page-title {  position: absolute;  bottom: 20%;  left: 20%;  color: var(--2, #102C57);  text-align: left;  font-family: "Zen Old Mincho";  font-size: 48px;  font-style: normal;  font-weight: 500;  line-height: normal;  letter-spacing: 1.92px;}h1.page-title span {  font-style: italic;}.section h4 {  background: var(--2, #102C57);  color: #fff;  padding: 10px;  font-size: 18px;  text-align: center;}.bnr {  margin: 0 auto;  max-width: 800px;  margin-bottom: 100px;}@media screen and (max-width: 768px) {  h1.page-title {    position: absolute;    right: 0;    left: 0;    bottom: 10%;    margin: 0 auto;    font-size: 1.5rem;    text-align: center;  }}/*-----------------------------クリニックページ------------------------------*//* Features Section */.features {  padding: 80px 0;}.features__grid {}.feature-item {  position: relative;  display: flex;  gap: 40px;  background-color: #fff;  box-shadow: 0px 4px 10px 4px rgba(105, 105, 105, 0.25);  margin: 90px 0;}.feature-item__img {  flex: 0 0 40%;  max-width: 50%;  margin: -25px;}.feature-item__img img {  width: 100%;}.feature-item__body {  padding: 20px;}.feature-item__heading {  display: flex;  gap: 15px;  justify-content: flex-start;  align-items: center;  height: 70px;}.feature-item__number {  font-size: 40px;  font-family: 'Zen Old Mincho', serif;  color: #333;}.feature-item__number span {  font-size: 24px;}.feature-item__title {  font-size: 32px;  font-family: 'Zen Old Mincho', serif;  margin: 10px 0;}.feature-item__text {  font-size: 20px;  line-height: 1.6;}/* Policy Section */.policy {  position: relative;  padding: 80px 0;  color: #fff;}.policy__bg {  width: 100%;  height: 100%;  z-index: -1;}.policy__bg-img01 {  position: absolute;  top: 0;  left: 0;  width: 55%;  height: 100%;  object-fit: cover;}.policy__bg-img02 {  height: 100%;  object-fit: cover;}.policy__content {  text-align: center;  margin-bottom: 60px;}.policy__title {  font-size: 40px;  font-family: 'Noto Serif JP', serif;}.policy__subtitle {  font-size: 64px;  font-family: 'Noto Serif JP', serif;}.policy-cards {  display: grid;  grid-template-columns: repeat(2, 1fr);  gap: 40px;}.policy-card {  background-color: #fff;  color: #333;  box-shadow: 0px 4px 10px 0px rgba(97, 97, 97, 0.25);}.policy-card img {  width: 100%;  margin-bottom: 20px;}.policy-card h3 {  font-size: 24px;  font-family: 'Noto Serif JP', serif;  margin-bottom: 10px;}.policy-card p {  font-size: 18px;  line-height: 1.8;  padding: 0 20px;}/* Director Section */.director {  padding: 80px 0;}.director-tilte {  display: inline-block;  font-family: 'Zen Old Mincho', serif;  font-size: 48px;  color: #102C57;  margin: 0 0 50px;  position: relative;  /* padding-right: 80px;  */}.director-tilte::after {  content: "";  position: absolute;  top: 50%;  left: 100%;  transform: translateY(-50%);  width: 350px;  height: 1px;  background-color: #102C57;  margin-left: 20px;}.director-subtilte {  font-family: 'Zen Old Mincho', serif;  font-size: 24px;  color: #102C57;}.director__flex {  display: flex;  align-items: center;  justify-content: center;  margin-bottom: 40px;}.director__img {  flex: 0 0 330px;  margin: 0;}.director__img img {  width: 100%;}.director__title-block {  background-color: #102C57;  color: #fff;  padding: 20px;  margin-bottom: 20px;}.director__role {  font-size: 36px;}.director__name-ja {  font-size: 48px;}.director__name-ja span {  font-size: 20px;  margin-left: 10px;}.director__name-en {  font-size: 36px;  color: #C2E5FF;}.director__bio {  font-size: 20px;  line-height: 1.8;}.director-history {  display: flex;  gap: 40px;  background-color: #DFF2FF;  padding: 40px;}.director-history__item h4 {  font-size: 20px;  margin-bottom: 10px;}.director-history__item p {  font-size: 20px;  line-height: 1.6;}/* Gallery Section */.gallery {  padding: 80px 0;  background-color: #FEFDF6;}.gallery__grid {  display: grid;  grid-template-columns: repeat(3, 1fr);  gap: 40px;  margin: 50px 0;}.gallery-item {}.gallery-item img {  width: 100%;}.gallery-item h3 {  background-color: #102C57;  color: #fff;  padding: 15px;  font-size: 20px;  margin: 10px 0 0;}.gallery-item p {  font-size: 18px;  line-height: 1.6;}/* Clinic Info Section */.clinic-info {  padding: 50px 0 0;}.info-table {  border-top: 1px solid #D9D9D9;  margin: 50px 0;}.info-table__row {  display: flex;  border-bottom: 1px solid #D9D9D9;}.info-table__header {  width: 20%;  padding: 20px;  background-color: #C2E5FF;  font-size: 18px;}.info-table__data {  width: 80%;  padding: 20px;  font-size: 18px;  background-color: #fff;}/* Safety Section */.safety {  padding: 80px 0;}.section-title--small {  font-size: 40px;  text-align: center;  margin-bottom: 40px;}.safety__content {  display: flex;  gap: 40px;  align-items: center;  margin: 50px 0 0;}.safety__text h3 {  font-size: 24px;  margin-bottom: 20px;}.safety__text p {  font-size: 18px;  line-height: 1.8;}.safety__img {  flex: 0 0 50%;}.safety__img img {  width: 100%;}/* Management System Section */.management-system {  padding: 80px 0;}.management-system__content h4 {  font-size: 24px;  color: #102C57;  margin-bottom: 20px;  text-align: center;}.management-system__content p {  font-size: 15px;  line-height: 1.8;}/* Responsive */@media (max-width: 768px) {  .hero {    height: 300px;  }  .hero__text {    padding-top: 100px;  }  .hero__sub-title {    font-size: 24px;  }  .hero__title {    font-size: 32px;  }  .section-subtitle {    font-size: 32px;  }  .features__grid {    grid-template-columns: 1fr;  }  .feature-item {    display: block;    margin: 20px 0;  }  .feature-item__img {    max-width: 100%;    margin: 0;  }  .feature-item__heading {    display: block;    height: auto;  }  .feature-item__number {    font-size: 30px;    margin: 0;  }  .feature-item__title {    font-size: 24px;  }  .feature-item__text {    font-size: 18px;  }  .policy {    padding: 30px 0 0;  }  .policy-cards {    grid-template-columns: 1fr;  }  .director__flex {    flex-direction: column;  }  .director__img {    flex: 0 0 auto;  }  .director-history {    flex-direction: column;  }  .director-tilte::after {    display: none;  }  .gallery__grid {    grid-template-columns: 1fr;  }  .info-table__row {    flex-direction: column;  }  .info-table__header,  .info-table__data {    width: 100%;    font-size: 18px;  }  .safety__content {    flex-direction: column;  }}/*-----------------------------料金ページ------------------------------*//* ===== 基本色 / コンテナ ===== */:root {  --c-navy: #213247;  --c-gold: #d6b15f;  --c-ink: #2b3a4a;  --c-gray: #6b7280;  --c-line: #e6e8ee;}* {  box-sizing: border-box}img {  max-width: 100%;  height: auto;  display: block}.en {  letter-spacing: .08em}/* ===== ヒーロー ===== */.hero {  position: relative;  background: #f7f8fb;}.hero__img {  height: 220px;  background-size: cover;  background-position: center;  filter: saturate(.9);}.hero__inner {  position: relative;  margin-top: -120px;  color: #fff;}.hero__eyebrow {  font-size: 14px;  opacity: .9;}.hero__title {  display: inline-block;  margin-top: 6px;  font-size: 28px;  font-weight: 700;  padding: .3em .9em;  background: rgba(33, 50, 71, .88);  border-radius: 6px;}/* ===== パンくず ===== */.breadcrumb {  background: #fafbfc;  font-size: 13px;  color: #6b7280;}.breadcrumb .container {  padding: 10px 0;}.breadcrumb a {  color: #6b7280;  text-decoration: none;}.breadcrumb span {  margin: 0 6px;}/* ===== サブナビ ===== */.subnav {  background: #bfa25a;}.subnav .container {  overflow: auto;}.subnav ul {  display: flex;  gap: 18px;  list-style: none;  margin: 0;  padding: 10px 0;}.subnav a {  color: #fff;  text-decoration: none;  font-size: 14px;  display: block;  padding: .3em .8em;  border-radius: 999px;  border: 1px solid rgba(255, 255, 255, .35);}.subnav a:hover {  background: rgba(255, 255, 255, .14);}/* ===== セクション基礎 ===== */.price {  background: #f3f6fb;}.lead.container {  padding: 18px 0 0;  color: #46536a;  font-size: 14px;  text-align: center;}.section {  padding: 28px 0;}.section__hd {  padding: 12px 33px;  margin: 0 0 14px;  color: #fff;  background: var(--2, #102C57);  font: 500 clamp(16px, 2.4vw, 24px)/1.8 var(--ff-title);}/* ===== 表 ===== */.table-wrap {  background: #fff;  border: 1px solid var(--c-line);  overflow: hidden;}.overflow {  overflow: auto;}.price-table,.price-table-blue {  width: 100%;  border-collapse: collapse;  font-size: 14px;}.price-table th,.price-table td {  padding: 14px 12px;  border-bottom: 1px solid var(--c-line);  color: #333;}.price-table thead th {  background: #f5f7fb;  font-weight: 700;  color: #223247;  border-bottom: 1px solid #dfe5ef;}.price-table tbody th {  font-weight: 500;  width: 40%;  background: #f5f5f5;}.price-table .ta-right {  text-align: center;}.price-table .ta-right img {  width: 200px;  margin: 0 auto;}.price-table--dense th,.price-table--dense td {  padding: 10px 10px;  font-size: 16px;}.price-table-blue thead th {  background: #DFF2FF;  font-weight: 700;  color: #223247;  border-bottom: 1px solid #dfe5ef;}.price-table-blue th {  background: #DFF2FF;  font-weight: 700;  color: #223247;  border-bottom: 1px solid #dfe5ef;}.price-table-blue .ta-right {  text-align: center;  border-bottom: 1px solid #dfe5ef;}/* スクロールヒント */.table-wrap.overflow {  border: 1px dashed rgba(0, 0, 0, .06);}/* ===== ノート ===== */.note {  margin-top: 8px;  color: #6b7280;  text-align: center;}.bg-blue {  background: #DFF2FF;  padding: 2rem;}.bg-beige {  background: #FEFCF6;  padding: 2rem;}/* ===== ミニカード（インレーの写真など） ===== */.card-list {  display: flex;  gap: 16px;  margin: 10px 0 14px;  flex-wrap: wrap;}.mini-card {  width: 160px;  border: 1px solid var(--c-line);  border-radius: 8px;  overflow: hidden;  background: #fff;  box-shadow: 0 4px 14px rgba(0, 0, 0, .06);}.mini-card figcaption {  text-align: center;  padding: 8px 6px;  font-size: 13px;}/* ===== 2カラムの注意/適用 ===== */.two-col {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 18px;}.two-col__box {  background: #DFF2FF;  border-radius: 8px;  padding: 14px 16px;}.two-col__hd {  font: 500 clamp(16px, 2.4vw, 24px) / 1.8 var(--ff-title);  margin: 0 0 8px;  color: #1f2a37;  border-bottom: 1px solid;}.dot {  margin: 0;  padding-left: 1.2em;  color: #334155;  font-size: 14px;  letter-spacing: 0.8px;}.dot li+li {  margin-top: 4px;}/* ===== 情報ブロック ===== */.info {  text-align: left;}.info__title {  font-family: 'Zen Old Mincho', serif;  font-size: 32px;  margin-bottom: 20px;  margin-top: 0;  margin: 20px 0;  color: #1f2a37;  text-align: center;}/* ===== レスポンシブ ===== */@media (max-width: 900px) {  .hero__img {    height: 180px;  }  .two-col {    grid-template-columns: 1fr;  }  .subnav ul {    gap: 10px;  }  .price-table thead {    display: none;  }  .price-table tr {    padding: 10px 0;  }  .price-table tbody th {    grid-column: 1/-1;    border-bottom: none;    padding-bottom: 6px;  }  .price-table td {    border-bottom: none;    background: #fbfcff;  }  .price-table td:last-child {    border-bottom: 1px solid var(--c-line);    grid-column: 2/3;    justify-self: end;  }  .info__title {    font-size: 24px;  }}/* General Page Styles */.hero__inner {  position: relative;}.hero__text {  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);  color: #102C57;  text-align: center;}.hero__sub-title {  font-family: 'PT Serif', serif;  font-size: 36px;  letter-spacing: 0.12em;}.hero__title {  font-family: 'Zen Old Mincho', serif;  font-size: 48px;  font-weight: 500;}.general-content {  padding: 80px 40px;}.general-section {  margin-bottom: 80px;}.section-title {  text-align: center;  margin-bottom: 20px;}.section-title__en {  display: block;  font-family: 'PT Serif', serif;  font-weight: 500;  font-size: 48px;  font-style: italic;  letter-spacing: 0.12em;  color: #102C57;}.section-title__ja {  display: block;  font-family: 'Zen Old Mincho', serif;  font-size: 44px;  color: #102C57;  text-align: center;  margin: 0}.section-title__mid {  display: block;  font-family: 'Zen Old Mincho', serif;  font-size: 24px;  color: #102C57;  text-align: center;  margin: 0}.general-section__title {  background: var(--2, #102C57);  color: #fff;  padding: 10px;  font-size: 18px;  text-align: center;}.general-section__sub-title {  font-family: 'Zen Old Mincho', serif;  font-size: 32px;  margin-bottom: 0;  margin-top: 0;}.general-section__body {  display: flex;  gap: 40px;  align-items: flex-start;  margin: 100px 0 30px;}.reverse {  flex-direction: row-reverse;}.general-section__img,.general-section__desc {  flex: 0 0 48%;  max-width: 50%;}.general-section__img img {  max-width: 100%;  height: auto;}.general-section__desc {  display: flex;  flex-direction: column;  justify-content: center;}.general-section__text {  flex: 1;  font-size: 18px;  line-height: 2;}.double__box {  display: flex;  gap: 30px;  justify-content: center;  font-size: 18px;}.double__box div {  width: calc(100% / 2);}.double__box h4 {  background: var(--2, #102C57);  color: #fff;  padding: 10px;  font-size: 18px;  text-align: center;}.double__box .gold {  background: #BDA653;}.triple__box {  display: flex;  gap: 30px;}.triple__box div {  width: calc(100% / 3);}.triple__box h4 {  background: var(--2, #102C57);  color: #fff;  padding: 10px;  font-size: 18px;  text-align: center;}.accordion {  margin-bottom: 80px;}.accordion__item {  background: #fff;  margin-bottom: 20px;}.accordion__title {  cursor: pointer;  position: relative;  padding: 12px 33px;  margin: 0 0 14px;  color: #fff;  background: var(--2, #102C57);  font: 500 clamp(16px, 2.4vw, 24px) / 1.8 var(--ff-title);}.accordion__title::after {  content: '';  position: absolute;  right: 20px;  top: 50%;  transform: translateY(-50%);  width: 31px;  height: 31px;  background-image: url('img/plus.svg');  background-size: contain;}.accordion__content {  padding: 20px;  display: none;}.accordion__item.active .accordion__content {  display: block;}.learn-more {  padding-bottom: 80px;}.accordion-grid {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 40px;}@media (max-width: 768px) {  .hero__title {    font-size: 24px;  }  .hero__sub-title {    font-size: 18px;  }  .general-content {    padding: 40px 20px;  }  .section-title__en {    font-size: 32px;  }  .section-title__ja {    font-size: 24px;  }  .general-section__img,  .general-section__desc {    max-width: 100%;  }  .general-section__sub-title {    font-size: 24px;  }  .general-section__body {    flex-direction: column;    margin: 50px 0 0;  }  .accordion-grid {    grid-template-columns: 1fr;  }  .double__box {    display: block;  }  .double__box div {    width: 100%;    margin-bottom: 50px;  }  .triple__box {    display: block;  }  .triple__box div {    width: 100%;    margin-bottom: 50px;  }}/*---------------投稿ページ------------------*/.entry-title {  font-size: 2rem;  font-family: 'Zen Old Mincho';  border-bottom: 3px solid #BDA653;}.entry-date {  display: block;  text-align: right;}.post {  background: #ffffff;  padding: 50px 20px;  border-radius: 10px;}/*---------------投稿アーカイブページ------------------*//* 投稿一覧全体 */.archive-list {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));  gap: 2rem;  margin: 2rem 0;}/* 各記事カード */.archive-item {  background: #fff;  border: 1px solid #ddd;  border-radius: 12px;  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);  transition: transform 0.2s ease, box-shadow 0.2s ease;  overflow: hidden;}.archive-item:hover {  transform: translateY(-4px);  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);}.archive-item a {  display: block;  color: inherit;  text-decoration: none;  padding: 1.5rem;}/* タイトル */.archive-title {  font-size: 1.1rem;  font-weight: bold;  margin-bottom: 0.5rem;  color: #102c57;  line-height: 1.4;}/* 日付 */.archive-date {  display: block;  font-size: 0.85rem;  color: #888;  margin-bottom: 0.8rem;}/* 抜粋 */.archive-excerpt {  font-size: 0.95rem;  line-height: 1.6;  color: #333;}/* ページネーション */.pagination {  margin: 3rem 0;  text-align: center;}.pagination .page-numbers {  display: inline-block;  margin: 0 6px;  padding: 8px 12px;  border-radius: 6px;  background: #f5f5f5;  color: #333;  text-decoration: none;  transition: background 0.2s;}.pagination .page-numbers.current,.pagination .page-numbers:hover {  background: #bda653;  color: #fff;}