/* =========================================
   Services page
========================================= */

section.services-intro{
    padding:88px 0 96px;
}

.service__number{
    margin:0;
    color:#777;
    font-family:"Times New Roman", serif;
    font-size:0.875rem;
    letter-spacing:0.12em;
}

.services-intro__title,
.service__title{
    margin:0;
    font-family:"Times New Roman", serif;
    font-weight:400;
}

.services-intro__title{
    font-size:clamp(3.5rem, 7vw, 6rem);
    letter-spacing:-0.04em;
    line-height:1;
}

.services-intro__title--compact{
    font-size:clamp(3rem, 5vw, 4.5rem);
}

.services-intro__lead{
    max-width:650px;
    margin-top:72px;
    font-size:1.0625rem;
    line-height:2;
}

.services-intro__lead p + p{
    margin-top:28px;
}

section.services-list{
    padding:0 0 112px;
}

.service{
    display:grid;
    grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items:center;
    gap:clamp(48px, 9vw, 144px);
    padding:60px 0;
    border-top:1px solid #e5e5e5;
}

.service--reverse .service__content{
    order:2;
}

.service--reverse .service__image{
    order:1;
}

.service__title{
    margin-top:0;
    font-size:clamp(2.75rem, 5vw, 4.5rem);
    letter-spacing:-0.04em;
    line-height:1;
}

.service__catch{
    margin-top:32px;
    font-size:1.25rem;
    font-weight:400;
}

.service__description{
    max-width:420px;
    margin-top:24px;
    color:#555;
    line-height:2;
}

.service__image{
    margin:0;
    overflow:hidden;
}

.service__image img{
    width:100%;
    height:auto;
}

section.price-guide{
    padding:0 0 112px;
}

.price-guide__inner{
    display:grid;
    grid-template-columns:minmax(220px, 0.65fr) minmax(0, 1fr);
    gap:clamp(48px, 9vw, 144px);
    padding:80px 0;
    border-top:1px solid #e5e5e5;
}

.price-guide__label{
    color:#777;
    font-family:"Times New Roman", serif;
    font-size:0.875rem;
    letter-spacing:0.12em;
}

.price-guide__title{
    margin-top:12px;
    font-family:"Times New Roman", serif;
    font-size:clamp(2.75rem, 5vw, 4.5rem);
    font-weight:400;
    letter-spacing:-0.04em;
    line-height:1;
}

.price-guide__group + .price-guide__group{
    margin-top:56px;
    padding-top:56px;
    border-top:1px solid #e5e5e5;
}

.price-guide__group--columns{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:48px;
}

.price-guide__subtitle{
    margin:0;
    font-family:"Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
    font-size:1.375rem;
    font-weight:400;
    line-height:1.5;
}

.price-guide__list{
    margin:28px 0 0;
    border-top:1px solid #e5e5e5;
}

.price-guide__item{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:32px;
    padding:20px 0;
    border-bottom:1px solid #e5e5e5;
}

.price-guide__item dt{
    font-weight:400;
}

.price-guide__item dd{
    margin:0;
    color:#555;
    white-space:nowrap;
}

.price-guide__notes{
    margin-top:28px;
    color:#777;
    font-size:0.875rem;
    line-height:1.9;
}

.price-guide__notes--intro{
    margin-top:16px;
}

.price-guide__notes p + p{
    margin-top:12px;
}

.price-guide__details{
    margin:24px 0 0;
    padding-left:1.25em;
    color:#555;
    line-height:1.9;
    list-style:disc;
}

.price-guide__details li + li{
    margin-top:8px;
}

.price-guide__details strong{
    color:#222;
    font-weight:500;
}

.price-guide__description{
    margin-top:24px;
    color:#555;
    line-height:1.9;
}

.price-guide__contact{
    padding:64px 0;
    border-top:1px solid #e5e5e5;
    text-align:center;
}

.price-guide__contact p{
    color:#555;
    line-height:2;
}

.price-guide__contact a{
    display:inline-flex;
    align-items:center;
    gap:16px;
    margin-top:28px;
    padding-bottom:6px;
    border-bottom:1px solid #222;
    font-family:"Times New Roman", serif;
    font-size:1.5rem;
}

@media (min-width:769px){

    .services-intro__lead,
    .service__catch,
    .service__description,
    .price-guide__content,
    .price-guide__contact p{
        font-weight:400;
    }
}

@media (max-width:768px){

    section.services-intro{
        padding:56px 0;
    }

    .services-intro__title{
        font-size:3.5rem;
    }

    .services-intro__title--compact{
        font-size:3rem;
    }

    .services-intro__lead{
        margin-top:48px;
        font-size:0.9375rem;
        line-height:1.9;
    }

    .services-intro__lead p + p{
        margin-top:22px;
    }

    .services-intro__lead br{
        display:none;
    }

    section.services-list{
        padding-bottom:64px;
    }

    .service,
    .service--reverse{
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:32px;
        padding:56px 0;
    }

    .service--reverse .service__content,
    .service--reverse .service__image{
        order:initial;
    }

    .service__title{
        font-size:2.75rem;
    }

    .service__catch{
        margin-top:24px;
        font-size:1.0625rem;
    }

    .service__description{
        margin-top:18px;
        font-size:0.9375rem;
        line-height:1.9;
    }

    section.price-guide{
        padding-bottom:64px;
    }

    .price-guide__inner{
        display:block;
        padding:56px 0;
    }

    .price-guide__title{
        font-size:2.75rem;
    }

    .price-guide__content{
        margin-top:32px;
    }

    .price-guide__group + .price-guide__group{
        margin-top:40px;
        padding-top:40px;
    }

    .price-guide__group--columns{
        display:block;
    }

    .price-guide__group--columns > div + div{
        margin-top:40px;
    }

    .price-guide__subtitle{
        font-size:1.25rem;
    }

    .price-guide__list{
        margin-top:24px;
    }

    .price-guide__item{
        display:block;
        padding:18px 0;
    }

    .price-guide__item dt,
    .price-guide__item dd{
        font-size:0.9375rem;
    }

    .price-guide__item dd{
        margin-top:6px;
    }

    .price-guide__notes{
        margin-top:20px;
        font-size:0.8125rem;
    }

    .price-guide__notes--intro{
        margin-top:14px;
    }

    .price-guide__details,
    .price-guide__description{
        font-size:0.9375rem;
    }

    .price-guide__contact{
        padding:56px 0;
    }

    .price-guide__contact p{
        font-size:0.9375rem;
        line-height:1.9;
    }
}
