@charset "utf-8";

/* 共通 ================================================== */
:root {
	--fff: #fff;
	--main: #415964;

    --bg_blue: #F4FDFF;
    --bg_red: #FFF4F4;

    --shadow: 0 4px 10px #C9E5ED;
    --shadow_red: 0 4px 10px #fcd3d3;

	--blue: #69B2D5;
    --red: #CE6262;

    --Noto: "Noto Sans JP", sans-serif;
    --ZenMaru : "Zen Maru Gothic", sans-serif;
}

* {
    font-family: var(--Noto);
    color: var(--main);
    transition: all .3s ease-out;
    -webkit-transition: .3s ease-out;
    -moz-transition: .3s ease-out;
}

html { 
    font-size: 112.5%; /* 16px × 1.125 = 18pxを基本サイズに */
    line-height: 1.8rem;
    letter-spacing: .03rem;
}

body {
    font-size: 1rem;      /* = 18px */
    font-synthesis: none; /* 擬似ボールド禁止 */
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

main,
footer {
    background: var(--fff);
    box-shadow: 0 0 30px #F6EFE4;
    margin: auto;
    max-width: 500px;
    position: relative;
    overflow: clip;
    height: auto
}

a {
    position: relative;
    text-decoration: none;
}

p {
    margin-bottom: 1rem;
}

section {
    position: relative; 
    padding: 0 2rem;
}


/* 改行 */
.sp {display: none;}

section,h1,h2,form {
    opacity: 0;
    transform: translateY(5%);
    transition: 2s;
}
section,h1,h2,form {
    &.is-show {
    transform: translateY(0);
    opacity: 1;
    }
}

/* ---------------------------
　h 見出し
--------------------------- */
h1,h2,h3,h4 {
    font-family: var(--ZenMaru);
    font-weight: 500;
    letter-spacing: .06rem;
}

h1 {
    color: var(--blue);
    font-size: 1.6rem;
    text-align: center;
}

h2 { 
    font-size: 1.3rem;
    margin-bottom: 1rem;
    line-height: 2.1rem;
    padding: 1rem 0;
    text-align: center;
    /* あしらい */
    &::after {
        content: "";
        background: url(../img/h2_bg.png) no-repeat center / contain;
        display: block;
        margin-top: 1rem;
        height: 12px;
        width: 100%;
    }
}

#index h2 {
    color: var(--blue);
    padding-top: 0;
}

h3 {
    border-bottom: 1px solid var(--blue);
    display: flex;
    align-items: center;
    font-size: 1.1rem;
    margin-bottom: 1rem;
    line-height: 1.6rem;
    padding-bottom: 0.5rem;
    /* h3 アイコン */
    &::before {
        content: "";
        background-image: url(../img/h3.svg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        margin-right: .3rem;
        width: 1.2rem;
        height: 1.2rem;
    }
}

/* h3 アイコン URL */
#access > *:nth-child(3)::before { background-image: url(../img/h3_1.svg) }
#access h3::before { background-image: url(../img/h3_2.svg) }
#zihi   h3::before { background-image: url(../img/h3_3.svg) }
#yobou  h3::before { background-image: url(../img/h3_4.svg) }
#sonota h3::before { background-image: url(../img/h3_5.svg) }

h4 {
    color: var(--blue);
    font-size: 1.1rem;
    margin-bottom: .5rem;
    letter-spacing: 0;
}

/* 画像 波 下 */
.wave::after {
    content: "";
    background: url(../img/bg.svg) no-repeat bottom / 100%;
    filter: drop-shadow(0px -10px 8px rgba(201, 229, 237, 0.4)); 
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    height: 45px;
    width: 100%;
    z-index: -1;
}


/* 丸 脈動アニメーション */
@keyframes pulsate {
    0% {
        transform: translateY(-50%) scale(1);
        opacity: 1;
    }
    30% {
        opacity: 0;
        transform: translateY(-50%) scale(2.5);
    }
    60%,100% {
        opacity: 0;
        transform: translateY(-50%) scale(1);
    }
}

/* 電話 */
.tel {
    background: var(--bg_blue);
    border: 1px solid var(--blue);
    border-radius: 0.3rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    justify-content: center;
    padding: .6rem .5rem;
    text-align: center;
    & span {
        color: var(--main);
        line-height: 1rem;
    }
}

/* 電話 赤字 */
.tel.red {
    background: var(--bg_red);
    border: 1px solid var(--red);
    & span {
        color: var(--red);
    }
    & a {
        line-height: 1rem;
        color: var(--red) !important;
    }
}

/* -----------------------------------------
table .day 診療時間
-------------------------------------------- */
table.day {
    border-spacing: 0;
    margin-bottom: 1rem;
    width: 100%;
    & th,
    & td {
        border-bottom: 1px solid var(--blue);
        font-family: var(--ZenMaru);
        font-size: 1.1rem;
        font-weight: 500;
        padding: 0.3rem;
        text-align: center;
        vertical-align: middle;
    }
    & th {
        background: var(--blue);
        border-right: 1px solid var(--fff);
        border-bottom: none;
        color: var(--fff);
        font-weight: normal !important;
    }
    & td {
        border-right: 1px solid;
        color: var(--blue);
    }
    & th:first-child,
    & td:first-child {
        border-radius: 5px 0 0 5px;
        box-sizing: content-box;
        padding: 0.3rem 0.1rem;
        width: 100px;
    }
    & td:first-child {
        border-radius: 0;
        letter-spacing: 0;
    }
    & th:last-child {
        border-right: none;
        border-radius: 0 5px 5px 0;
    }
    & td:last-child {
        border-right: none;
    }
    & tr:last-child td {
        border-bottom: none;
    }
}

/* 赤字 */
.red,
.red a
.red p
.red span {
    color: var(--red) !important;
}

/* -----------------------------------------
    #news お知らせ 一覧 共通
-------------------------------------------- */
time {
    font-size: 0.9rem;
    color: var(--blue);
    margin-right:  .3rem;
}

.icon {
    background: var(--bg_blue);
    border: 1px solid var(--blue);
    border-radius: 0.2rem;
    color: var(--blue);
    font-size: 0.8rem;
    padding: 0.1rem 0.5rem ;
}

.holiday {
    background: var(--bg_red);
    border: 1px solid var(--red);
    color: var(--red);
}

dd {
    border-bottom: 1px dotted var(--blue);
    margin-bottom: .8rem;
    padding-bottom: .8rem;
    &:last-child {
        border: none;
    }
    & a {
        display: block;
        /* ホバー */
        &:hover {
            opacity: .6;
        }
    }
}

/* .button お知らせ一覧を見る */
#news .button a { 
    max-width: 250px;
    /* ホバー */
    &:hover {
        background: var(--blue);
        color: var(--fff);
        /* 丸 */
        &::before,
        &::after {
            background: var(--fff) !important;
            }
    }
}


/** mobile
===================================*/
@media screen and (max-width: 400px){

    section {
        padding: 0 1rem;
    }

    /* 改行 */
    .pc {display: none;}
    .sp {display: block;}


    /* -----------------------------------------
    table .day 診療時間
    -------------------------------------------- */
    table.day {
        & th:first-child,
        & td:first-child {
            padding: 0.3rem 0.1rem;
            width: auto;
        }
    }
}