/* 
=======================================================
GENERAL
=======================================================
*/
* {
    line-height: 1.5;
}

main {
    margin: 0;
}

@media screen and (max-width: 480px) {
    h1 {
        font-size: 1.75rem;
    }
}

@media screen and (max-width: 320px) {
    h1 {
        font-size: 1.5rem;
    }
}

h2 {
    font-size: 2.5rem;
    line-height: 1.75;
    text-align: center;
}

@media screen and (max-width: 480px) {
    h2 {
        font-size: 1.4rem;
        line-height: 1.85;
    }
}

@media screen and (max-width: 320px) {
    h2 {
        font-size: 1.2rem;
        line-height: 1.85;
    }
}

h3,
h3 span {
    font-size: 1.5rem;
}

@media screen and (max-width: 480px) {

    h3,
    h3 span {
        font-size: 1.3rem;
        line-height: 1.3;
    }
}

@media screen and (max-width: 320px) {

    h3,
    h3 span {
        font-size: 1.1rem;
    }
}

h4 {
    font-size: 1.1rem;
}

@media screen and (max-width: 480px) {
    h4 {
        font-size: 0.95rem;
    }
}

p,
a,
li {
    font-style: normal;
    font-size: 1rem;
    color: unset;
    margin-bottom: 0.1rem;
}

@media screen and (max-width: 320px) {

    p,
    a,
    li,
    select {
        font-size: small;
    }
}

ul,
ol {
    list-style: none;
}

input {
    appearance: none;
    height: 100%;
}

input[type="text"],
input[type="email"],
input[type="tel"] {
    width: 100%;
    height: 100%;
}

label {
    font-size: 1rem;
    color: #444;
    line-height: 28px;
}

p:last-child {
    margin-bottom: 0;
}

span {
    display: inline;
}

form {
    width: 100%;
    margin: 0 auto;
}

table img {
    display: block;
    margin: 0 auto;
}

a {
    text-decoration: none;
    cursor: pointer;
}

@media (min-width: 1024px) {
    a:hover {
        opacity: 0.8;
        transition: 0.5s;
    }
}

img {
    object-fit: contain;
}

sup {
    vertical-align: top;
    font-size: xx-small;
}

summary {
    display: block;
    cursor: unset;
}

summary::-webkit-details-marker {
    display: none;
}

.redirect {
    margin: 0;
    padding: 0;
}

.annotation {
    width: 100%;
    padding: var(--padding_pc);
    padding-top: 0;
}

.annotation p,
.annotation a {
    font-size: x-small;
    line-height: 1.2;
}

/*
PC、SPの改行
=======================================================
*/
.pc {
    display: block;
}

@media screen and (max-width:768px) {
    .pc {
        display: none;
    }
}

.sp {
    display: none;
}

@media screen and (max-width: 480px) {
    .sp {
        display: block;
    }
}

.sd {
    display: none;
}

@media screen and (max-width: 320px) {
    .sd {
        display: block;
    }
}


/* 
=======================================================
強調デザイン
=======================================================
フォントサイズ
=======================================================
*/
/* 強調数字 */
.number {
    position: absolute;
    position: relative;
    font-family: "Kadwa", serif;
    position: absolute;
    font-size: 5rem;
    line-height: 0;
    top: 50%;
    transform: translateY(-50%);
}

@media screen and (max-width: 480px) {

    /* 強調数字 */
    .number {
        font-size: 4rem;
        bottom: -1.25rem;
    }
}

@media screen and (max-width: 320px) {

    /* 強調数字 */
    .number {
        font-size: 3rem;
        bottom: -0.75rem;
    }
}

.larger {
    font-size: larger;
    line-height: 1.25;
}

.large {
    font-size: large;
}

.x-large {
    font-size: x-large;
}

.largest {
    font-size: 3rem;
    line-height: 1;
}

@media screen and (max-width: 480px) {
    .largest {
        font-size: 1.8rem;
    }
}

.smaller {
    font-size: smaller;
}

h2 .smaller {
    font-size: 1.1rem;
}

.small {
    font-size: small;
}

.x-small {
    font-size: x-small;
}

/* 
太さ
=======================================================
*/
.bold {
    font-weight: bold;
}

.bolder {
    font-weight: bolder;
}


/* 
下線
=======================================================
*/
.underline {
    display: inline;
    text-decoration: underline solid;
}

.dotline {
    text-decoration: underline dotted;
}

/* 
ハイライト
=======================================================
*/
.highlight_red {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    line-height: 1;
    background: linear-gradient(transparent 40%, rgba(255, 0, 0, 0.2) 40% 90%, transparent 90%);
}

.highlight_red_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 0, 0, 0.2) 10% 90%, transparent 90%);
}

.highlight_pink_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 40%, rgba(255, 230, 238, 0.6) 40% 90%, transparent 90%);
}

.highlight_pink_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 230, 238, 0.6) 10% 90%, transparent 90%);
}

.highlight_yellow_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    line-height: 1;
    background: linear-gradient(transparent 40%, rgba(255, 240, 0, 0.4) 40% 90%, transparent 90%);
}

.highlight_yellow_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 240, 0, 0.4) 10% 90%, transparent 90%);
}

.highlight_white_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 50%, rgba(255, 255, 255, 0.6) 50% 90%, transparent 90%);
    padding-bottom: 0.3rem;
}

.highlight_white_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, rgba(255, 255, 255, 0.6) 10% 90%, transparent 90%);
}

.highlight_green_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 40%, #b9e382 40% 90%, transparent 90%);
}

.highlight_green_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, #b9e382 10% 90%, transparent 90%);
}

.highlight_blue_50 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 40%, #79DFFF 40% 90%, transparent 90%);
}

.highlight_blue_100 {
    display: inline;
    margin: 0 auto;
    width: fit-content;
    background: linear-gradient(transparent 10%, #79DFFF 40% 90%, transparent 90%);
}

/* 
文字寄せ
=======================================================
*/

.center {
    text-align: center;
}

.right {
    text-align: right;
}

.left {
    text-align: left;
}

.separator {
    margin-bottom: 1.5rem;
}