/*
Theme Name: Twenty Twenty-Five Child
Template: twentytwentyfive
*/

/* Add your custom styles below this line. */

/* リセットcss */
:where(.wp-site-blocks :focus) {
	outline: none !important;
	    outline-width: 0 !important;
    outline-style: none !important;
}
body {
	overflow-x: hidden !important;
}
/* ヘッダー */
header .wp-block-navigation .wp-block-navigation__container {
    
}
header .wp-block-navigation .wp-block-navigation__container .wp-block-navigation-item {
    padding-block: 6px;
}

header .wp-block-navigation .wp-block-navigation__container > .wp-block-navigation-item:last-of-type {
    background-color: #60B73F !important;
    border-radius: 15px !important;
    padding-inline: 16px !important;
    color: #fff !important;
}
.header-logo{

}
header .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
    background-color: #fff;
}
@media (max-width: 599px) {
  header .wp-block-navigation,
  header .wp-block-navigation-item,
  header .wp-block-navigation__submenu-container,
  header .wp-block-navigation__responsive-container-content {
    align-items: flex-start !important;
  }
}

/* スマホ用メニュー */
.mobile-menu.sp-only.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}
.mobile-menu.sp-only {
    opacity: 0;
    visibility: hidden;
    transform: translateX(100%);
    transition: transform 0.3s ease-in-out;
}
.mobile-menu-treatment .wp-block-button__link,
.mobile-menu-about .wp-block-button__link {
    position: relative;
    justify-content: flex-start;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.mobile-menu-treatment .wp-block-button__link::after,
.mobile-menu-about .wp-block-button__link::after {
    content: '>';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
}

.mobile-menu-treatment .wp-block-button__link::after {
    color: #60b73f;
}

.mobile-menu-reserve {
    flex-wrap: nowrap;
}
.mobile-menu-reserve .wp-block-button__link {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* ファーストビュー */
.page-fv {
    position: relative;
}

body:not(.home):not(.front-page) .page-fv::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100vw;
    height: fit-content;
    aspect-ratio: 1;
    background-image: url(/wp-content/uploads/2026/05/page-fv-wavy.png);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: contain;
    object-fit: contain;
    pointer-events: none;
}

.page-fv .wp-block-post-featured-image img {
    max-height: 500px;
}
@media (max-width: 599px) {
	.page-fv .wp-block-post-featured-image img {
			aspect-ratio: 16 / 9;
	}
}

.page-fv .title-absolute {
    position: absolute;
    width: 100%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.page-fv .title-wavy {
    width: 100%;
    height: fit-content;
    position: absolute;
    left: 0;
    bottom: -10px;
    margin: 0;
}

/* トップページファーストビュー */
.top-fv-wrap {
    position: relative;
    height: 90vh;
}
.top-fv-wrap::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(/wp-content/uploads/2026/05/top-wavy.png);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: contain;
    object-fit: contain;
    pointer-events: none;
}
.top-fv {
    height: 100%;
}

@media (max-width: 599px) {
	.top-fv-wrap {
		height: 400px;
	}
	.top-fv img {
        object-position: 60% 0% !important;
    }
}
/* お客様の体を支える三つの約束 */
.three-promises {
    position: relative;
    background-position-y: bottom;
    background-position-x: center;
    background-repeat: no-repeat;
}

.three-promises .wavy {
    width: 100%;
    height: fit-content;
    position: absolute;
    left: 0;
    top: 0;
    margin: 0;
    transform: translateY(-50%);
}

/* オススメ施術メニュー */
.recommend-treatment-h2 {
    display: flex;
    justify-content: center;
    align-items: baseline;
    white-space: nowrap;
    gap: .5rem;
}

.recommend-treatment-h2::before {
    content: "\\";
    font-family: 'Arial', sans-serif;
}

.recommend-treatment-h2::after {
    content: "/";
    font-family: 'Arial', sans-serif;
}
.recommend-treatment-content {
    overflow: hidden;
}

.treatment-step-content {
    position: relative;
    background-image: url(/wp-content/uploads/2026/05/wavy-treatment-flow.png);
    background-repeat: repeat-y;
    background-size: contain;
}

.treatment-step-content::before {
    content: "";
    position: absolute;
    width: 14px;
    height: 90%;
    top: 50%;
    left: 50%;
    background-color: #60B73F;
    transform: translate(-50%, -50%);
    z-index: 1;
}
.treatment-step-content-column {
    position: relative;
    z-index: 2;
}

@media (min-width: 782px) {
    .treatment-step-content-column:not(:first-child) {
        margin-top: -3rem;
    }
}

@media (max-width: 781px) {
    .treatment-step-content-column.treatment-step-content-column--2 {
        margin-bottom: clamp(30px, 5vw, 50px);
    }
}
.treatment-step-head {
    box-shadow: inset 0 0 0 3px #82d466, inset 0 0 0 4.5px #ffffff;
}

/* 酸素カプセルについて */
.about-oxygenCapsule {
    
}

.about-oxygenCapsule img {
    border-radius: 26px;
}
.about-treatment {
    row-gap: 3rem !important;
}

/* ライン付き見出し */
.lined-heading {
    position: relative;
    padding-bottom: 1rem;
}

.lined-heading::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    height: 8px;
    border: 1px solid #6D6D6D;
    background-color: #fff;
    z-index: 1;
}

.lined-heading::after {
    content: "";
    position: absolute;
    bottom: 1px;
    left: 50%;
    transform: translateX(-50%);
    width: 20%;
    height: 8px;
    background-color: #AECFF3;
    z-index: 2;
}

/* 施術紹介ページ 強調 */
.text-dot-emphasis {
    -webkit-text-emphasis: filled dot #007bff;
    text-emphasis: filled dot #007bff;
    text-emphasis-position: under right;
    -webkit-text-emphasis-position: under right;
}

.treatment-flow {
    position: relative;
}

.flow-item {
    position: relative;
    z-index: 2;
}

/* 施術の流れ 中央ライン */
.treatment-flow::before {
    content: "";
    position: absolute;
    top: 3rem;
    bottom: 3rem;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    background-color: #5fb53f;
    pointer-events: none;
    z-index: 0;
}

/* 施術の流れラベル */
.flow-label {
    position: relative;
    overflow: hidden;
}

.flow-label::after {
    content: "";
    position: absolute;
    inset: 4px;
    border: 1px solid rgba(255, 255, 255, 0.95);
    border-radius: 999px;
    pointer-events: none;
}

/* お知らせページ */
.news-query {
    
}

.news-query li {
    margin-block-start: 0;
    position: relative;
}
.news-query li a:hover{
    text-decoration: none !important;
}
.news-query li a::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
.news-query li:hover {
    opacity: 0.8;
}



.news-query li .taxonomy-category a {
    border: none;
    color: #fff;
}

.news-query li .news-query-flex {
    gap: 2rem;
}

@media (max-width: 599px) {
    .news-query li .news-query-flex {
        flex-direction: column;
        gap: 1rem;
    }
}

.news-query li .taxonomy-category {
    flex: 0 0 160px;
}

@media (max-width: 599px) {
    .news-query li .taxonomy-category {
        flex: none;
		width: 160px;
    }
}

.news-query li .taxonomy-category a {
    width: 100%;
    display: inline-block;
    text-align: center;
    box-sizing: border-box;
    padding-block: .5rem;
    pointer-events: none;
    border-radius: 99px;
    text-decoration: none;
}

.news-query li .taxonomy-category a[href*="/category/news/"] {
    background-color: #7CD75B;
}

.news-query li .taxonomy-category a[href*="/category/campaign/"] {
    background-color: #5B98D8;
}

.news-query li .news-query-title {
    flex: 1;
}

.news-query li .wp-block-post-date {
    flex: 0 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}
.news-query li .wp-block-post-date::after {
    content: ">";
    z-index: 1;
}
.news-query li .wp-block-post-date a {
    pointer-events: none;
    text-decoration: none;
    color: inherit;
}

.news-menuButton {
    width: 80%;
    margin-inline: auto;
    gap: 0 !important;
}

@media (max-width: 599px) {
    .news-menuButton {
        width: 100%;
    }
}

.news-menuButton .wp-block-button:not(:last-child) {
    border-right: 1px solid #d9d9d9;
}

.news-menuButton .wp-block-button {
    flex: 1;
}

.news-menuButton .wp-block-button__link {
    background: transparent !important;
}

.news-pageNation {
    width: fit-content;
    margin-inline: auto;
    padding: 8px 0;
}

.news-pageNation:not(:has(nav.wp-block-query-pagination .page-numbers, nav.wp-block-query-pagination .wp-block-query-pagination-previous, nav.wp-block-query-pagination .wp-block-query-pagination-next)) {
    border: none !important;
}

.news-pageNation nav.wp-block-query-pagination {
    gap: 0;
}

.news-pageNation nav.wp-block-query-pagination .page-numbers {
    border-right: 1px solid #d9d9d9;
    padding-inline: 20px;
    text-decoration: none;
    color: #6D6D6D;
}

.news-pageNation nav.wp-block-query-pagination .page-numbers.current {
    color: #000;
}

.news-pageNation nav.wp-block-query-pagination .wp-block-query-pagination-previous,
.news-pageNation nav.wp-block-query-pagination .wp-block-query-pagination-next {
    padding-inline: 20px;
    color: #6D6D6D;
    text-decoration: none;
}

/* ページコンテンツ幅 */
.page-contentWid {
    max-width: 1200px;
    margin-inline: auto;
}

/* アクセス */
.access-content{
    
}
@media (max-width: 781px) {
    .access-content {
        flex-direction: column;
    }
}

.access-content .access-feature {
    width: 100%;
}

.access-content .access-feature th,
.access-content .access-feature td {
    border: none;
    border-bottom: 1px solid #d9d9d9;
    vertical-align: top;
}
.access-content .reception-hours {
    border: none;
    border-collapse: collapse;
    border-radius: 8px;
}
.access-content .reception-hours thead {
    background-color: #B5CD3C;
    color: #fff;
    border: none;
}
.access-content .reception-hours thead th {
    border: none;
}

.access-content .reception-hours tbody {
    background-color: #fff;
}

.access-content .reception-hours tbody td {
    border: none;
}

.access-content .reception-hours tbody td:not(:last-child) {
    border-right: 1px solid #d9d9d9;
}

.access-content .reception-hours tbody tr:first-child td {
    border-bottom: 1px solid #d9d9d9;
}

.access-content .reception-hours tbody td:nth-child(n+2):nth-child(-n+6) {
    color: #AECFF3;
}

.access-content .reception-hours tbody tr:first-child td:nth-child(7) {
    color: #B5CD3C;
}

.access-content .access-map-wrap {
    flex: 1;
}
@media (max-width: 781px) {
    .access-content .access-map-wrap {
        width: 100%;
    }
}
.access-content .access-map-wrap iframe {
    border-radius: 26px;
    overflow: hidden;
}

/* 当院紹介ページ */
/* 公共交通機関でお越しの方 */
.public-transport{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 9rem;
    row-gap: 3rem;
}

.public-transport > * {
    margin-block-start: 0;
}

@media (max-width: 600px) {
    .public-transport {
        grid-template-columns: 1fr;
    }
}

.public-transport .public-transport-firstColumn{

}

/* お問い合わせページ */
.wpforms-required-label{
    font-size: 0 !important;
}
.contact-form{

}
.contact-form .wpforms-required-label::before {
    content: "必須";
    font-size: 14px;
    line-height: 1;
    background-color: #60B73F;
    color: #fff;
    padding: 2px 4px;
    border-radius: 8px;
    margin-left: 1rem;
}

.contact-form .wpforms-submit-container{
    text-align: center;
}

.contact-form .wpforms-submit{
    background-color: #60B73F !important;
    border-radius: 32px !important;
    padding: 24px 32px !important;
    height: fit-content !important;
}

.contact-form .wpforms-submit::before {
    content: ">";
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translateY(-50%);
}

/* 院長紹介 */
.introduce-director > figure > img {
    border-radius: 2rem;
}
@media (max-width: 600px) {
    .wp-block-media-text__content {
        padding: 0 !important;
    }
}

/* 運動メニュー */
@media (max-width: 600px) {
    .expected-effect {
        width: 100%;
    }
    .expected-effect > p {
        width: 100%;
    }
}

/* コンバージョンエリア */
.contact-link .wp-block-button__link{
    position: relative;
}
.contact-link .wp-block-button{
    min-width: 240px;
}
.contact-link .wp-block-button__link::after {
    content: "arrow_forward_ios";
    font-family: "Material Icons";
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translateY(-50%);
}

/* utinity */
.text-shadow {
	text-shadow: 
    1px 1px 2px #fff, 
   -1px -1px 2px #fff, 
    1px -1px 2px #fff, 
   -1px 1px 2px #fff,
    0px 0px 4px #fff;
}
.sp-only {
	display: none;
}
.u-flex {
	display: flex !important;
}
@media (max-width: 599px) {
	.sp-only {
	display: block;
}
	.pc-only {
		display: none;
	}
}