/*
Theme Name: 歯医者のお医者
Version: 1.0
License:GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

/* 追加CSS */

/* ==========================
   Header
========================== */
.header__link::after {
    z-index: 100;
}
.header__item {
    position: relative;
}

/* ▼ Dropdown (PC) */
.has-dropdown .dropdown {
    position: absolute;
    top: calc(110% - 0.3rem);
    left: -1rem;
    background-color: #f8f8f8;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    min-width: 19rem;
    z-index: 10;
    padding-top: 1.6rem;
}

.has-dropdown:hover .dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown li {
    border-top: 0.05rem solid #DDD;
    border-bottom: 0.05rem solid #DDD;
}
.dropdown li:last-child {
    border-bottom: none;
}

.dropdown__link {
    display: block;
    padding: 1.6rem 1rem;
    color: #333;
    font-size: 1.5rem;
    text-decoration: none;
}
.dropdown__link:hover {
    color: #06C3D5;
}

.header__logo a {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-left: 3.2rem;
    gap: 1rem;
}
.header__logo a img {
    margin-left: 0;
}

/* ▼ Dropdown (SP) */
@media (max-width: 767px) {
    .header__logo a {
        margin-left: 0;
    }
    .has-dropdown .dropdown {
        position: static;
        opacity: 0;
        visibility: hidden;
        max-height: 0;
        overflow: hidden;
        transition: all 0.3s ease;
        padding-top: 0;
    }
    .has-dropdown .dropdown.open {
        opacity: 1;
        visibility: visible;
        max-height: 500px;
    }
    .dropdown__link {
        padding: 1.6rem 0;
    }
    .dropdown li {
        border: none;
    }

    .header__menu__item.has-dropdown > .header__menu__link {
        position: relative;
        padding-right: 1.5em;
    }

    .header__menu__item.has-dropdown > .header__menu__link::after {
        content: "";
        position: absolute;
        right: 0.6em;
        top: 50%;
        width: 10px;
        height: 10px;
        border-right: 1px solid #333;
        border-bottom: 1px solid #333;
        transform: translateY(-50%) rotate(45deg);
        transition: transform 0.3s ease;
    }

    .header__menu__item.has-dropdown.open > .header__menu__link::after {
        transform: translateY(-50%) rotate(-135deg);
    }
}

/* ==========================
   Blog / Footer
========================== */
.blog_none {
    color: #FFF;
    text-align: center;
}
.blog_none_black {
    color: #000;
}

.footer__contact__line {
    background: #06C755;
}
.footer__contact__line:hover {
    background: rgba(4, 137, 60, 1);
}
.footer__contact__line img {
    width: 3.6rem;
}

.footer__list {
    padding-bottom: 1.6rem;
    padding-top: 0;
}
.footer__list ul {
    display: flex;
}
.footer__list ul li {
    padding: 1.6rem 1.2rem 1.6rem 1rem;
}
.footer__list ul li a {
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 1;
    color: #000;
}
.footer__list ul li a:hover {
    color: #06C3D5;
}
.footer__list ul li a span {
    display: flex;
    align-items: center;
}

.link_arrow {
    display: inline-block;
    font-size: 0.8rem;
    margin-right: 0.8rem;
}

/* ▼ Footer (SP) */
@media (max-width: 768px) {
    .footer__social__contact {
        flex-direction: column-reverse;
        gap: 5rem;
    }
    .footer__nav {
        gap: 0;
    }
    .footer__list ul {
        width: 100%;
        flex-direction: column;
        margin: 2rem 0;
    }
    .footer__list ul li a {
        font-size: 2rem;
    }
}

/* ==========================
   Index (Top Page)
========================== */
.teeth {
    width: 2rem;
    height: 2.2rem;
}
.index__controls {
    display: none;
}

/* ▼ PC Layout */
@media (min-width: 769px) {
    .index__fv {
        display: flex;
    }
    .index__box {
        flex: 1;
        position: relative;
        transition: flex 0.6s ease, transform 0.6s ease;
        cursor: pointer;
    }
    .index__box:hover {
        flex: 2;
        z-index: 2;
    }
    .index__fv:hover .index__box:not(:hover) {
        flex: 0.8;
        opacity: 0.6;
    }
    .index__fv__img img {
        width: 100%;
        height: 72rem;
        object-fit: cover;
    }
    .index__fv__content {
        padding: 0 0 0 10rem;
        bottom: 16rem;
    }
    .index__service__item {
        width: 25%;
    }
    .index__about__content {
        gap: 12.4rem;
    }
    .index__about__content__img .img {
        background-color: #FFF;
        width: 50rem;
    }
}

/* ▼ SP Layout */
@media (max-width: 767px) {
    .index__fv {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        width: 100%;
    }
    .index__box {
        flex: 0 0 100%;
        scroll-snap-align: start;
    }
    .index__fv__img img {
        width: 100%;
        height: auto;
    }
    .index__fv::-webkit-scrollbar {
        display: none;
    }
    .index__fv {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    /* ▼ Controls & Dots */
    .index__controls {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2rem;
        margin-top: -5rem;
        z-index: 10;
    }
    .index__dots {
        display: flex;
        justify-content: center;
        gap: 8px;
    }
    .index__dot {
        width: 64px;
        height: 4px;
        border-radius: 100px;
        background-color: #FFF;
        transition: background-color 0.3s;
    }
    .index__dot.active {
        background-color: #0389AD;
    }

    /* ▼ Arrows */
    .arrow {
        position: relative;
        width: 20px;
        height: 20px;
        background: none;
        border: none;
        cursor: pointer;
        opacity: 0.5;
        transition: opacity 0.3s;
    }
    .arrow.active {
        opacity: 1;
    }
    .arrow::before,
    .arrow::after {
        content: "";
        position: absolute;
        width: 10px;
        height: 2px;
        background: #FFF;
        top: 50%;
        left: 50%;
        transform-origin: center;
        transition: background 0.3s;
    }
    .arrow--left::before {
        transform: translate(-50%, -50%) rotate(45deg);
        top: 12px;
    }
    .arrow--left::after {
        transform: translate(-50%, -50%) rotate(-45deg);
        top: 7px;
    }
    .arrow--right::before {
        transform: translate(-50%, -50%) rotate(-45deg);
        top: 12px;
    }
    .arrow--right::after {
        transform: translate(-50%, -50%) rotate(45deg);
        top: 7px;
    }
}

@media (max-width: 768px) {
    .index__fv__img img {
        height: 150vw;
        object-fit: cover;
    }
    .index__fv__content .contact__link {
        margin-top: 11.5rem;
    }
    .index__about__content__img .rotate {
        bottom: -7.5rem;
    }
    .index__about__content__img .img {
        background-color: #FFF;
        box-shadow: 1.6rem 1.6rem 0 0 #049BBC;
    }
    .index__about__content__img .img img {
        width: 65%;
        margin-left: 22%;
    }
}

/* ==========================
   Blog Detail
========================== */
.blog__detail {
    padding: 10rem 6.4rem 10rem 16rem;
}
.blog__detail__main {
    width: 98.4rem;
}
.blog__sidebar {
    width: 20rem;
}
.blog__detail__container {
    justify-content: space-between;
}
.blog__detail__article .meta .title {
    font-size: 3.2rem;
}
.blog__detail__article .meta .date {
    font-size: 1.9rem;
    opacity: 0.5;
}
.blog__detail__article .meta .share__link,
.blog__detail__article .share__link {
    font-size: 1.4rem;
    line-height: 2;
}
.blog__detail__article .meta .share__link {
    bottom: -1rem;
}

.blog__sidebar__title,
.blog__sidebar__link {
    font-weight: 300;
}
.blog__detail__article,
.blog__detail__article .main__content {
    display: block;
    gap: 0;
}
.main__img {
    margin: 4.8rem 0;
}

h2.wp-block-heading {
    background-color: #049BBC;
    color: #FFF;
    font-size: 1.9rem;
    font-weight: 600;
    line-height: 2;
    padding: 1.2rem;
    border-radius: 0.3rem;
    margin: 4.8rem 0 2.4rem 0;
}

.main__content p {
    font-size: 1.9rem;
    line-height: 2;
    font-weight: 500;
    color: #4D4D4D;
    margin: 2.4rem 0;
}

/* ▼ Blog Detail (SP) */
@media (max-width: 768px) {
    .blog__detail {
        padding: 6.4rem 2.4rem;
    }
    .blog__detail__main,
    .blog__sidebar {
        width: 100%;
    }
    .blog__detail__article .meta .title {
        font-size: 2.4rem;
    }
    .blog__detail__article .meta .share__link {
        font-size: 1rem;
        bottom: 0;
    }
    h2.wp-block-heading {
        border-radius: 0.6rem;
    }
    .blog__detail .blog__recommended__list .blog__item {
        margin-bottom: 1rem;
    }
}

/* ▼ Blog Misc */
.blog__item__desc {
    opacity: 0.5;
}
.blog__list .blog__pagination__link {
    background: initial;
    border: none;
}
.blog__list .blog__pagination__link:hover,
.blog__list .blog__pagination__link.active {
    background: initial;
    border: none;
    border-bottom: 1px solid #049BBC;
    color: #049BBC;
}
.blog__sidebar__link.active {
    color: #049BBC;
    border-bottom: 1px solid #049BBC;
}

/* ==========================
   Button / Others
========================== */
.haguruma_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4rem;
}
@media (max-width: 768px) {
    .haguruma_btn {
        flex-direction: column;
        gap: 2rem;
    }
}


/* Haluluに伴う修正 */

.contact__link_pink {
    background: linear-gradient(180deg, #FCAEE3 0%, #FE70D1 100%);
}

.contact__link_pink:hover {
    background: linear-gradient(180deg, #FE70D1 0%, #FCAEE3 100%);
}

.zenmaru {
    font-family: "Zen Maru Gothic", sans-serif;
}

.halulu .index__service__link::before {
    background: rgba(255, 111, 209, 0.64);
}

.halulu .index__service__text {
    text-align: center;
}

.halulu .index__service__text span {
    font-size: 4rem;
    line-height: 1;
    color: #FFF!important;
}

.about__company__card__box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.8rem;
}

.about__company__card {
    width: 55.6rem;
    padding: 2.4rem;
}

.about__company__card p {
    padding: 3rem 3.2rem;
    font-weight: bold;
    font-size: 1.9rem;
}

.about__company__card table tr {
    border-bottom: 0;
    border-top: 1px solid #4D4D4D;
}

.about__company__card table tr th,
.about__company__card table tr td {
    vertical-align: middle;
}

.line_qa img {
    width: 100px;
}

@media (max-width: 768px) {
    .about__company__card {
        width: 100%;
    }
}

/* Haluluページ */

.halulu,
.halulu p {
    font-family: "Zen Maru Gothic", sans-serif!important;
}

.halulu .page__fv__content {
    display: none;
}

.halulu p span,
.halulu .section__title,
.halulu .services__detail__item__text .title
{
    color: #fe70d1;
}

.halulu .services__detail__desc {
    color: #4d4d4d;
}

.halulu .services__detail .title {
    width: 100%;
    position: relative;
    font-size: 4.8rem;
}

.halulu .services__detail .title::before {
    position: absolute;
    content: "";
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    width: 25rem;
    height: 1px;
    background-color: #FE70D1;
}

.halulu .section__title::after {
    border-bottom: 0.2rem dashed #fe70d1;
}

.halulu .deco__img__cw {
    box-shadow: 1.6rem 1.6rem 0 0 #7ade9e;
}

.halulu .deco__img__ccw {
    box-shadow: -1.6rem 1.6rem 0 0 #7ade9e;
}

.halulu .rotate.cw,
.halulu .rotate.ccw {
    display: none;
}

.services__menu {
    background: linear-gradient(180deg, rgba(255, 218, 243, 1) 0%, rgba(255, 195, 236, 1) 100%);
    padding: 20rem 0;
}

.services__menu__title {
    margin-bottom: 6.4rem;
    padding-bottom: 2rem;
}

.services__menu__title span {
    display: none;
}

.services__menu__title img {
    width: 28.8rem;
    margin: auto;
}

.services__menu__list__box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2.4rem;
}

.services__menu__lists {
    width: 54.8rem;
}

.services__menu__lists h3 {
    text-align: center;
    font-size: 2.4rem;
    line-height: 2;
    color: #FFF;
    background-color: #FE70D1;
    border-radius: 1.6rem 1.6rem 0 0;
}

.services__menu__lists h3 span {
    font-size: 1.9rem;
}

.services__menu__list {
    width: 100%;
    background-color: #FFF;
    border: 0.4rem solid #FE70D1;
    border-radius: 0 0 1.6rem 1.6rem;
    padding: 0 1.6rem;
}

.services__menu__list li {
    font-size: 1.9rem;
    line-height: 2;
    padding: 2rem 0;
    padding-left: 3.4rem;
    position: relative;
    border-bottom: 0.1rem dashed #FE70D1;
}

.services__menu__list li:last-child {
    border-bottom: 0;
}

.services__menu__list li::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 2.4rem;
    height: 2.4rem;
    background-image: url(assets/img/services__menu__list__check.png);
    background-repeat: no-repeat;
    background-size: contain;
}

.halulu .desc.f-txt {
    line-height: 1.6;
}

.for__first {
    padding-top: 20rem;
}

.halulu .for__first .services__detail__item,
.halulu .for__staff .services__detail__item {
    max-width: 112rem;
}

.halulu .for__first .services__detail__item {
    flex-direction: row!important;
    padding-left: 0!important;
    padding-right: 7.2rem!important;
}

.for__first .services__detail__item__text,
.for__staff .services__detail__item__text {
    width: 45.6rem;
}

.services__interior {
    padding: 10rem 16rem 20rem;
}

.services__interior__title {
    margin-bottom: 6.4rem;
    text-align: center;
}

.services__interior__slider div {
    margin: 0 0.4rem;
}

.services__interior__prev,
.services__interior__next {
    background: none;
    border: none;
    width: 4rem;
    height: 4rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    z-index: 2;
}

.services__interior__prev::before,
.services__interior__next::before {
    content: "";
    display: block;
    width: 4rem;
    height: 4rem;
    background-image: url(assets/img/arrow_pink_left.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.services__interior__next::before {
    transform: rotate(180deg);
}

.services__interior__prev { 
    left: -50px;
}

.services__interior__next { 
    right: -50px;
}

.services__news {
    padding: 20rem 0;
    background: linear-gradient(180deg, rgba(255, 218, 243, 1) 0%, rgba(255, 195, 236, 1) 100%);
}

.halulu .services__faq {
    background: linear-gradient(180deg, rgba(255, 218, 243, 1) 0%, rgba(255, 195, 236, 1) 100%);
}

.halulu .services__faq__question {
    background-color: initial;
    background: linear-gradient(180deg, #FF92DC 0%, #FE71D1 100%);
}

.halulu .services__faq__question .mark,
.halulu .services__faq__answer .mark {
    font-family: "Zen Maru Gothic", sans-serif;
}

.halulu .services__faq__answer {
    align-items: baseline;
}

.halulu .services__faq__answer .mark {
    color: #FCB0E4;
}

.services__faq__title {
    padding-bottom: 2rem;
}

.services__faq__title span {
    display: none;
}

.services__faq__title img {
    width: 28.8rem;
    margin: auto;
}

.halulu .services__faq__title::after {
    border-bottom: 0.4rem dotted #FFF;
}

.services__access {
    padding: 20rem 0;
}

.services__access__title {
    text-align: center;
    margin-bottom: 6.4rem;
}

.services__access__content {
    max-width: 112rem;
    margin: auto;
    display: flex;
    justify-content: center;
    gap: 6.4rem;
}

.services__access__map {
    width: 50rem;
}

.services__access__map iframe {
    width: 100%;
    height: 51rem;
}

.services__access__txt {
    width: 55rem;
}

.services__access__txt__box {
    padding: 2.4rem;
    background-color: #FFF;
    border-radius: 2.4rem;
    box-shadow: 4px 4px 16px rgba(0, 0, 0, 0.04);
    margin-bottom: 2.4rem;
}

.services__access__txt__box:nth-of-type(2) {
    padding: 1rem 2.4rem;
}

.services__access__txt h3 {
    display: inline-block;
    font-size: 1.9rem;
    line-height: 1.6;
    color: #FFF;
    background-color: #FE70D1;
    border-radius: 100px;
    padding: 0.6rem 2.4rem;
}

.services__access__txt p {
    font-size: 1.9rem;
    line-height: 1.6;
    margin: 1.6rem 0;
}

.services__access__txt .note {
    font-size: 1.2rem;
}

.services__access__btn {
    width: 37.7rem;
    margin-top: 4rem;
}

.services__access__btn:hover {
    opacity: 0.6;
}

.instagram__btn {
    width: 14.1rem;
}

.instagram__btn:hover {
    opacity: 0.6;
}

.services__news__title {
    padding-bottom: 1rem;
}

.services__news__title span {
    display: none;
}

.services__news__title img {
    width: 52.5rem;
    margin-right: auto;
}

.halulu .services__news__title::after {
    display: none;
}

.teeth_pink img {
    width: 2rem;
    margin: auto;
}

.teeth_pink:hover .icon {
    rotate: initial;
}

.btn.teeth_pink .btn__text {
    color: #FE70D1;
}

.services__news.index__blogs .slick-arrow {
    background-color: initial;
}

.services__news.index__blogs .slick-arrow.slick-prev:before {
    background-image: url(assets/img/arrow_pink_left.png);
}

.services__news.index__blogs .slick-arrow.slick-next:before {
    background-image: url(assets/img/teeth_pink_right.png);
}

.index__blogs .slick-dots {
    top: -10.3rem;
}

.services__news.index__blogs .slick-dots li.slick-active button {
    background: #7ADE9E;
}

.footer__icon {
    z-index: -1;
}

.footer_halulu .footer__icon {
    display: none;
}

.footer_halulu .footer__list .footer__item .footer__link .en,
.footer_halulu .footer__ex__list .footer__item .footer__link {
    color: #FE70D1;
}

.footer_halulu .footer__contact {
    background: linear-gradient(180deg, #FCB0E4 0%, #FE70D1 100%);
}

.footer_halulu .footer__contact:hover {
    background: linear-gradient(180deg, #FE70D1 0%, #FCB0E4 100%);
}

.footer_halulu .footer__copy {
    background-color: #340027;
}

@media (max-width: 768px) {
    .halulu .page__fv {
        margin-top: 8.3rem;
    }
    .halulu p span {
        display: inline;
    }
    .halulu .services__detail .title {
        font-size: 3.2rem;
    }
    .halulu .services__detail .title::before {
        width: 15rem;
    }
    .services__menu {
        padding: 6.4rem 2.4rem;
    }
    .services__menu__lists {
        width: 100%;
    }
    .services__menu__title img {
        width: 21.8rem;
    }
    .for__first {
        padding-top: 6.4rem;
    }
    .halulu .for__first .services__detail__item {
        flex-direction: column !important;
        padding-right: 0 !important;
    }
    .for__first .services__detail__item__text, .for__staff .services__detail__item__text {
        width: 100%;
    }
    .services__detail__item__img {
        width: 85%;
    }
    .services__interior {
        padding: 6.4rem 0;
    }
    .services__interior__prev {
        left: 1rem;
    }
    .services__interior__next {
        right: 1rem;
    }
    .services__interior__slider div {
        margin: 0;
    }
    .services__interior__slider .slick-slide {
        margin: 0 0.5rem;
    }
    .services__news {
        padding: 6.4rem 0;
    }
    .services__news__title img {
        width: 33.5rem;
    }
    .index__blogs .slick-dots {
        top: initial;
    }
    .services__access {
        padding: 6.4rem 2.4rem;
    }
    .services__access__txt {
        width: 100%;
    }
    .services__access__title {
        width: 105%;
        margin-left: -2.5%;
    }
    .services__access__content {
        flex-direction: column;
    }
    .services__access__map {
        width: 100%;
    }
    .services__access__map iframe {
        height: 35rem;
    }
    .services__access__txt {
        width: 100%;
    }
    .services__access__btn {
        width: 100%;
    }
	.services__faq__title img {
    	width: 19.8rem;
	}
}


/* お口の駆け込み寺ページ */

.services__support__desc, .services__detail__desc {
    margin-top: 0;
}

@media (min-width: 769px) {

.services__detail__content__none {
    width: 126.4rem;
    gap: 0;
}

.services__detail__content__none .services__detail__item {
    padding-right: 0;
}

.services__detail__content__none .services__detail__item__text {
    width: 67.2rem;
    padding-left: 4rem;
}

.title_105 {
    width: 105%;
    margin-bottom: 6.4rem!important;
}

}