@charset "UTF-8";
  /*
      Template: swell
      Theme Name: SWELL CHILD
      Theme URI: https://swell-theme.com/
      Description: SWELLの子テーマ
      Version: 1.0.0
      Author: LOOS WEB STUDIO
      Author URI: https://loos-web-studio.com/

      License: GNU General Public License
      License URI: http://www.gnu.org/licenses/gpl.html
  */

  /* ============================================================
     全体
     ============================================================ */
body{
	background:#f7f7f7;
}
.swell-block-fullWide__inner > div{
	max-width: 1200px;
    margin: 0 auto;
}
  .l-content {
      padding-top: 0;
  }
@media (min-width: 960px) {
    .-parallel .l-header__gnav .c-gnav>li>a {
        padding: 8px 16px;
    }
	.c-headLogo {
        height: auto;
    }
}
.swell-block-fullWide__inner {
    padding: 0 1rem;
}
.l-fixHeader__inner.l-container {
    max-width: 1200px !important;
	padding:0 .5rem;
}

  .deco {
      font-family: 'Shippori Mincho', serif;
  }

  .deco7 {
      text-shadow: 1px 1px 3px rgba(0, 0, 0, 1), 1px 1px 1px rgba(0, 0, 0, 0.8);
  }

  .deco11 {
      text-shadow:
          0 0 5px #fff, 0 0 5px #fff,
          0 0 10px #fff, 0 0 10px #fff,
          0 0 15px #fff, 0 0 15px #fff;
  }

  /* ============================================================
     FVタイトル
     ============================================================ */
  @media (min-width: 960px) and (max-width: 1300px) {
      .fv-ttl {
          top: -40px;
          font-size: clamp(25px, 2.5vw, 35px);
      }
  }
  @media (min-width: 1301px) {
      .fv-ttl {
          top: -75px;
          font-size: clamp(35px, 2.4vw, 50px);
      }
  }

  /* ============================================================
     トップタイトル（.top-ttl）
     ============================================================ */
  @media (min-width: 961px)  { .top-ttl { position: relative; top: 10px;  } }
  @media (min-width: 1071px) { .top-ttl { top: 35px;  } }
  @media (min-width: 1200px) { .top-ttl { top: 50px;  } }
  @media (min-width: 1300px) { .top-ttl { top: 80px;  } }
  @media (min-width: 1400px) { .top-ttl { top: 110px; } }
  @media (min-width: 1600px) { .top-ttl { top: 160px; } }
  @media (min-width: 1750px) { .top-ttl { top: 190px; } }
  @media (min-width: 1950px) { .top-ttl { top: 220px; } }
  @media (min-width: 2350px) { .top-ttl { top: 250px; } }

  /* ============================================================
     ヘッダー：固定ヘッダー・グローバルナビ
     ============================================================ */
  .l-fixHeader__inner.l-container {
      max-width: 100%;
  }
  .l-fixHeader__logo {
      max-width: 350px;
  }

  .c-gnav > .menu-item > a .ttl {
      display: block;
      font-size: clamp(14px, 1vw, 18px);
      text-shadow: 0 0 3px rgba(0, 0, 0, 1), 0 0 1px rgba(0, 0, 0, 0.8);
  }

/*
  #gnav {
      width: 100%;
      justify-content: space-between;
      text-align: center;
      color: #fff;
      font-weight: 900;
      letter-spacing: 1.1px;
  }
*/

  ul.c-gnav {
      font-family: "Noto Serif JP", serif;
  }

  @media (max-width: 960px) {
      #gnav {
          display: none;
      }
  }

  /* ============================================================
     ヘッダー：PCのみ（ロゴ・お問い合わせブロック）
     ============================================================ */
.l-fixHeader__inner {
    top: -2px;
}
  @media (min-width: 960px) {
      .l-header__barInner {
          display: flex;
          justify-content: space-between;
      }
      .l-header__bar .l-container {
          margin-right: 0;
          margin-left: 0;
          max-width: 100%;
      }

      .c-headLogo {
          align-items: center;
      }

      .-parallel .l-header__logo {
          display: flex;
          padding: .5rem 1rem 0 1rem;
		  max-width: 1200px;
          margin: 0 auto;
      }

      .l-header__inner .c-headLogo {
          width: 30%;
          display: block !important;
          text-align: left;
      }

      .l-fixHeader__inner .l-container .c-headLogo {
          width: 100%;
      }
	  
	  /* グローバルメニュー装飾※よく分からないけど外に出して書き直したら効いた */
	  .-parallel .l-header__gnav .c-gnav {
        	justify-content: space-between;
        	max-width: 1200px;
        	margin: 0 auto;
        	padding: 0.5rem;
		}
		.-parallel .l-header__gnav .c-gnav li{
			width:100%;
      }
	  .-parallel .l-header__gnav .c-gnav li {
    position: relative;
    flex: 1;
}

/* 左側の縦線 */
.-parallel .l-header__gnav .c-gnav li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 20%;
    width: 1px;
    height: 60%;
    background: rgba(255,255,255,.7);
}

/* 最後だけ右線 */
.-parallel .l-header__gnav .c-gnav li:last-child::after {
    content: "";
    position: absolute;
    right: 0;
    top: 20%;
    width: 1px;
    height: 60%;
    background: rgba(255,255,255,.7);
}
  		.-parallel .l-header__gnav .c-gnav > li:nth-of-type(2) > a::before{ content:"About us"; }
  .-parallel .l-header__gnav .c-gnav > li:nth-of-type(3) > a::before{ content:"Menu"; }
  .-parallel .l-header__gnav .c-gnav > li:nth-of-type(4) > a::before{ content:"Doctor"; }
  .-parallel .l-header__gnav .c-gnav > li:nth-of-type(5) > a::before{ content:"Price"; }
  .-parallel .l-header__gnav .c-gnav > li:nth-of-type(6) > a::before{ content:"Column"; }
  .-parallel .l-header__gnav .c-gnav > li:nth-of-type(7) > a::before{ content:"Recruit"; }
  		.-parallel .l-header__gnav .c-gnav li a:before{
			margin-bottom:.25rem;
			font-size:75%;
			font-family: "Noto Serif JP", serif;
			letter-spacing:2px;
	  }
	  .-parallel .l-header__gnav .c-gnav li a{
			font-family: "Noto Serif JP", serif;
	  }
   		.-parallel .l-header__gnav .c-gnav > li:nth-of-type(1) > a .ttl{
	      letter-spacing: 2px;
  }
	  
      /* 右側ブロック全体 */
      .kanta-right {
          width: 69.9%;
          display: flex;
          margin-left: auto;
      }

      /* 連絡先テキスト */
      .contact-box {
          margin: 0 0 0 auto;
          line-height: 1.5em;
          text-shadow: 0 0 3px rgba(0, 0, 0, 1), 0 0 1px rgba(0, 0, 0, 0.8);
      }
      .contact-box span {
          display: block;
      }
      .contact-box01 {
          font-size: 11px;
          text-align: justify;
          letter-spacing: 4px;
      }
      .contact-box02 {
          font-weight: 700;
          font-size: 20px;
          letter-spacing: 2px;
          margin-bottom: 2px;
          color: #DDC16B;
      }
      .contact-box02 a{
          color: #DDC16B;
      }
      .contact-box03 {
          font-size: 20px;
          text-align: justify;
          margin-top: .5rem;
          color: #DDC16B;
      }
      .contact-box03 a{
          color: #DDC16B;
      }
      .contact-box03 i {
          font-size: 90%;
      }

      /* お問い合わせバナー */
      .contact-banner {
          padding-left: 1em;
      }
      .contact-banner .far,
      .contact-banner .fas {
          padding-right: 5px;
      }
      .contact-banner a {
          font-size: 16px;
          height: 70%;
          display: flex;
          align-items: center;
          padding: 0 2em;
          margin-top: 3px;
      }

      /* お問い合わせCTAボタン */
      .kanta-cta {
          display: inline-block;
          padding: 18px 40px;
          font-size: 16px;
          font-weight: bold;
          color: #1a3a2a;
          text-decoration: none;
          text-align: center;
          border: 2px solid #1a3a2a;
          border-radius: 8px;
          background-color: #d4b876;
          background-image: linear-gradient(
              135deg,
              #b8985a 0%,
              #d4b876 25%,
              #f1e3b6 50%,
              #d4b876 75%,
              #b8985a 100%
          );
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
          transition: all 0.3s ease;
      }
      .kanta-cta:hover {
          transform: translateY(-2px);
          box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
          color: #1a3a2a;
      }
  }

  /* 中間幅でCTA非表示 */
  @media (max-width: 1100px) {
      .conta {
          /* display: none; */
      }
  }

  /* スマホで右ブロック非表示 */
  @media (max-width: 959px) {
      .kanta-right {
          display: none;
      }
  }
@media (min-width: 960px) {
    body:not(.home) .-parallel .l-header__logo {
      /* padding-top: calc(.5rem + 24px); */  /* 既存padding + H1分の高さ */
    }
}
	
  /* ============================================================
     ヘッダー：トップH1（ロゴ上のテキスト）
     ============================================================ */
  @media (min-width: 960px) {
      .c-headLogo.-img {
          display: flex;
          flex-direction: column;
      }
      .c-headLogo.-img .c-headLogo__link {
          height: auto;
      }
      .site-top-h1 {
          color: #DDC16B;
          font-size: 12px;
          font-weight: normal;
          margin: 0;
          padding: 2px 0;
          letter-spacing: 1px;
          line-height: 1.4;
          white-space: nowrap;
		  font-family: "Noto Serif JP", serif;
      }
	  .c-headLogo__img {
	    max-width: 350px;
	}
  }

  @media (max-width: 959px) {
      .site-top-h1 {
		  color: #DDC16B;
          font-size: 10px;
          font-weight: normal;
          margin: 0;
          padding: 4px 0 0;
          letter-spacing: 0.5px;
          line-height: 1.3;
		  font-family: "Noto Serif JP", serif;
      }
      .c-headLogo.-img .c-headLogo__link {
          height: var(--logo_size_sp);
          padding: 2px 0 0;
      }
      .c-headLogo.-img .c-headLogo__img {
          max-width: 196px;
      }
      .l-header {
          height: auto;
      }
      .l-header__inner {
          height: auto;
      }
      .l-header__menuBtn {
          align-self: center;
      }
	  .c-headLogo__img {
    height: auto;
	  }
  }

  /* ============================================================
     固定フッターSP
     ============================================================ */
  #fix_bottom_menu .menu_list {
      overflow: hidden;
      font-size: 1em;
  }
  #fix_bottom_menu .menu-item a {
      padding: 10% 0;
  }
  #fix_bottom_menu .menu-item:nth-child(1) a { background: #e0e0da; }
  #fix_bottom_menu .menu-item:nth-child(2) a { background: #4b9c81; }
  #fix_bottom_menu .menu-item:nth-child(3) a { background: #d0b975; }

  /* ============================================================
     見出し・装飾
     ============================================================ */
  .ttl1 {
      position: relative;
      left: -10%;
      overflow-block: visible;
  }

  .is-style-vk-heading-double_black,
  .editor-styles-wrapper .block-editor-block-list__layout .is-style-vk-heading-double_black {
      position: relative;
      outline: unset;
      outline-offset: unset;
      box-shadow: unset;
      border-radius: unset;
      overflow: unset;
      color: inherit;
      background-color: transparent;
      border: none;
      border-top: double 3px #fff;
      border-bottom: double 3px #fff;
      padding: .6em 0 .5em;
      margin-bottom: 1.2em;
  }

  /* ============================================================
     フォーム（WPForms）
     ============================================================ */
  .wpforms-required-label {
      color: #fff !important;
      text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25) !important;
      background-color: #da4f49 !important;
      padding: 4px 7px 4px !important;
      border-radius: 5px !important;
      white-space: nowrap;
  }

  /* ============================================================
     XO Event Calendar
     ============================================================ */
  .xo-event-calendar {
      margin: 0 auto;
  }
  .xo-months {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
  }
  /* .xo-month-wrap { width: 47%; } */ /* カレンダー横幅最大47%にしたい場合 */

  @media (max-width: 599px) {
      .xo-months {
          display: block;
      }
      .xo-month-wrap {
          width: 100%;
      }
  }

  /* ============================================================
     フッター
     ============================================================ */
  .w-beforeFooter {
      margin: 0;
  }

  .bg-dg {
      background-color: var(--color_footer_bg) !important;
  }
  .bg-dg a {
      color: white;
  }

  /* フッターナビ：1列目の位置調整（「診療案内」見出し分） */
  @media (min-width: 600px) {
      .footer-nav-offset > .swell-block-columns__inner > .swell-block-column:first-child {
          margin-top: 45px !important;
      }
      .footer-nav-offset .swell-block-columns__inner {
          justify-content: unset;
      }
  }
  
  /* 診療案内のタイトル部分の装飾 */
  .post_content p.medical-information,
  .medical-information{
    display:flex;
    align-items:center;
    gap:1rem;
	  font-family: "Noto Serif JP", serif;
	  font-size:125%;
	  font-weight:bold;
  }
  .post_content p.medical-information::after,
  .medical-information::after{
    content:"";
    flex:1;
    height:2px;
    background:#c9a85a;
  }

  /* 診療案内のメニュー装飾 */
  .clinical-departments .swell-block-columns__inner div:before{
	content:"ー";
	color:white;
  }
  .clinical-departments .swell-block-columns__inner div p{
	display:inline-block;
  }
  .clinical-departments .swell-block-columns__inner div p span{
	display:none;
  }

@media (max-width: 600px) {
    .clinical-departments .swell-block-columns__inner {
    	justify-content: flex-start;
	}
  }

  /* 固定ページ上部の抜粋 */
  .c-pageExcerpt,
  .footer-nav-offset .swell-block-columns__inner {
      font-size: min(3vw, 1rem);
  }

  /* ============================================================
     FAQ（SWELLブロック）
     ============================================================ */
  .swell-block-faq .swell-block-faq__item + .swell-block-faq__item {
      position: relative;
  }

  .swell-block-faq .faq_q {
      background: #EDE9E0;
      position: relative;
      padding: 1em 4em 1em 3em;
      cursor: pointer;
  }
  .swell-block-faq .faq_q:before {
      content: "Q." !important;
      font-weight: bold;
	  font-family: "Noto Serif JP", serif;
  }
  .swell-block-faq .faq_a::before {
      content: "A." !important;
      font-weight: bold;
	  font-family: "Noto Serif JP", serif;
	  color:#C4A465;
  }
  .swell-block-faq .faq_q:before,
  .swell-block-faq .faq_a:before {
      box-shadow: none;
      left: 12px;
  }
  .swell-block-faq__item .faq_q:after {
      content: "\e91c";
      font-family: icomoon !important;
      font-weight: bold;
      position: absolute;
      right: 30px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 1.4em;
  }
  .swell-block-faq__item.is-open .faq_q:after {
      content: "\e919";
  }

  /* 回答エリア（Gridで高さアニメーション） */
  .swell-block-faq .faq_a {
      display: grid;
      grid-template-rows: 0fr;
      opacity: 0;
      overflow: hidden;
      padding: 0 !important;
      border: 0 !important;
      transition:
          grid-template-rows .4s cubic-bezier(.25, .46, .45, .94),
          opacity .4s ease;
  }
  .swell-block-faq .swell-block-faq__item.is-open .faq_a {
      grid-template-rows: 1fr;
      opacity: 1;
  }
  .swell-block-faq .faq_a_inner {
      overflow: hidden;
      min-height: 0;
  }
  .swell-block-faq .faq_a_content {
      padding: 1em 1em 1em 3em;
      border-top: 0;
      position: relative;
  }



  /* ============================================================
     リニューアル作業中
     ============================================================ */

  /* スペーサー */
  .wp-block-spacer {
      background: #f0f0f0;
  }

  /* 医院情報テーブル */
  .wp-block-table > table tr > :first-child:not(.-no1) .xo-event-calendar {
      width: auto !important;
  }
  .wp-block-table .xo-event-calendar table.xo-month {
      table-layout: fixed;
      width: 100%;
  }
  .wp-block-table .xo-event-calendar table.xo-month tr > * {
      width: auto !important;
      min-width: 0 !important;
      max-width: none !important;
  }



/* SP固定フッター */
#fix_bottom_menu .menu-item a {
    display: flex;
	justify-content: center;
	align-items: center;
    gap: .325rem;
    color: white;
	background:#333 !important;
}
#fix_bottom_menu span {
    width: fit-content;
    font-size: 14px;
	padding-top:0;
	margin-top:0;
}
ul.menu_list li {
    border-left: 1px solid white;
}
ul.menu_list li:nth-of-type(2) {
    border-right: 1px solid white;
}
#fix_bottom_menu .menu_list {
    border-top: 1px solid white;
    border-bottom: 1px solid white;
}

/* ステップ追加装飾 */
.swell-block-step__number .__label {
    position: relative;
    top: -18px;
    color: #274531;
    letter-spacing: 2px;
    font-size: .75rem;
}
.swell-block-step__number:after {
    color: #D4BB69;
    position: relative;
    top: -6px;
    font-size: 28px;
}

