:root{
    --min: 0.6;
    --max: 1440;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
}

:where(html){
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    /*overflow-y: scroll;*/
}

:where(body){
    width: 768px;
    padding-top: min(110px,100vw*(110/768));
    block-size: max-content;
    background-color: #fff;
    color: #000;
    font-size: min(32px,100vw*(32/768));
    font-family: 'Meiryo UI', Meiryo, メイリオ, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;
    font-weight: 500;
    font-feature-settings: "palt" 1;
    letter-spacing: 0;
    line-height: calc(48/32);
    vertical-align: baseline;
}
@media only screen and (min-width:769px) {
    :where(body){
        width: auto;
        padding-top: clamp(110px*var(--min),100vw*(110/var(--max)),110px);
        font-size: max(16px*var(--min),min(16px,100vw*(16/var(--max))));
        line-height: calc(36/16);
    }
}

:where(main){
    position: relative;
    overflow: hidden;
}
@media only screen and (min-width:769px) {
    :where(main){
        max-width: 1920px;
        margin: 0 auto;
    }
}

:where(main ul){
    list-style-type: disc;
}
:where(main ol){
    list-style-type: decimal;
}
:where(main li){
    margin-left: 1.25em;
}
:where(p:not(:first-child)){
    margin-top: 1.0em;
}
:where(p:not(:last-child)){
    margin-bottom: 1.0em;
}
:where(a, img){
    color: #000;
    transition: all 0.5s;
}
@media only screen and (min-width:769px) {
    :where(a:hover){
        color: #2a4992;
    }
    :where(a:hover img){
        opacity: 0.7;
    }
    :where(a[href*="tel:"]){
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }

    ::-webkit-scrollbar {
        width: 16px;
    }
    ::-webkit-scrollbar-track {
        background: #000;
    }
    ::-webkit-scrollbar-thumb {
        background: #808080;
    }
}

.noscroll{
    overflow: hidden;
    height: 100dvh;
}
.scrollArea{
    overflow-x: auto;
}
.nowrap{
    white-space: nowrap;
}
.flex{
    display:-webkit-flex;
    display:flex;
}
.grid{
    display: grid;
    gap: 0px;
}
.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.alignleft {
    float: left;
    margin: 0.5em 1em 0.5em 0;
}
.alignright {
    float: right;
    margin: 0.5em 0 0.5em 1em;
}
.textcenter{
    text-align: center;
}
.textleft{
    text-align: left;
}
.textright{
    text-align: right;
}
.text-blue{
    color: #2a4992;
}
.text-red{
    color: #ff0000;
}
.text-white{
    color: #fff;
}
.en{
    font-family: Arial, Helvetica, sans-serif;
}

.pagetop{
    position:fixed;
    bottom:40px;
    right:40px;
    opacity:0;
    -webkit-transition:all 0.6s ease;
    -moz-transition:all 0.6s ease;
    -ms-transition:all 0.6s ease;
    transition:all 0.6s ease;
    z-index:-10;
}
.pagetop.active{
    opacity:1;
    z-index:100;
}

@media only screen and (max-width:768px) {
    .pc{
        display: none;
    }
}
@media only screen and (min-width:769px) {
    .sp{
        display: none;
    }
}