@charset "UTF-8";

* {
    box-sizing: border-box;
}
img {
    max-width: 100%;
}
html {
    scroll-behavior: smooth;
}
body {
    font-feature-settings: "palt";
}
a, button {
    cursor: pointer;
}

:root {
    --mainColor: #0bd;
    --subColor: #0bd4;
    --white: #fefefe;
    --gray: #9f9f9f;
    --black: #3f3f3f;
    --harfBlack: #3f3f3f3a;
    --gradientRed: #fff0ef;
    --gradientBlue: #f6fffd;
    --gradientDarkBlue: #dde3eb;
    --mainWidth: 800px;
    --subWidth: 320px;
    --btnWidth: 10rem;
    --containerWidth: 92vw;
    @media (width < 600px) {
        --containerWidth: 97vw;
    }
}

/* コンテナー */

.mainBox {
    display: flex;
    flex-direction: column;
    gap: calc(var(--mainWidth) / 10);
    padding: calc(var(--mainWidth) / 10) min(3vw, 2rem);
    position: relative;
}
.topContainer {
    width: var(--containerWidth);
    max-width: calc(var(--mainWidth) * 1.4);
    margin-inline: auto;
}
.flex {
    display: flex;
}
.flex-reverse {
    flex-direction: row-reverse;
}
.flex-column {
    display: flex;
    flex-direction: column;
}
/* スマホ改行 */
br.mobile {
    @media (600px <= width) {
        display: none;
    }
}
br.notebook {
    @media (width < 600px) {
        display: none;
    }
}
/* フォントサイズ */
.fz-small {
    font-size: clamp(.8rem, calc(.65rem + .6vw), 1.1rem);
}
.fz-mid {
    font-size: clamp(1.45rem, calc(1.235rem + .86vw), 1.88rem);
}

/* ヘッダー
================================================================ */
.header {
    position: relative;
}
/* キャッチイメージ */
.catch {
    box-shadow: 15px -15px 50px #fff inset;
    border-radius: 0 0 0 24px;
    opacity: .8;
    width: min(70%, 640px);
    aspect-ratio: 4/3;
    position: absolute;
    bottom: -2rem;
    right: 0;
    z-index: -5;
    &.ryuumai {
        background: url(../images/ryuumai.webp) no-repeat center/cover;
    }
    &.tosio {
        background: url(../images/tosio.webp) no-repeat center/cover;
    }
    &.kezouji {
        background: url(../images/kezouji.webp) no-repeat center/cover;
    }
    &.nishijima {
        background: url(../images/nishijima.webp) no-repeat center/cover;
    }
    &.nakazato {
        background: url(../images/nakazato.webp) no-repeat center/cover;
    }
    &.syouganji {
        background: url(../images/syouganji.webp) no-repeat center/cover;
    }
    &.hamajiri {
        background: url(../images/hamajiri.webp) no-repeat center/cover;
    }
    @media (760px < width) {
        border-radius: 0 0 16px 24px;
        bottom: -8vw;
        right: 8vw;
    }
}
/* h1タイトル */
.h1 {
    color: #fff;
    background-color: #333a;
    width: fit-content;
    padding: 1.8em 1.2em;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .15em;
}
/* ヘッダーコンタクト */
.contactBox {
    justify-content: space-around;
    .flex-column {
        gap: 1rem;
        a {
            color: #fff;
        }
    }
    @media (760px < width) {
        justify-content: left;
        gap: 2rem;
    }
}
.headerContact {
    background-color: var(--gradientBlue);
    box-shadow: 0 0 6px var(--harfBlack);
    border-radius: .3em;
    width: fit-content;
    height: fit-content;
    padding: .5em .7em;
}
/* お問い合わせボタン */
.icon {
    background-color: var(--mainColor);
    box-shadow: 0 0 6px var(--harfBlack);
    display: block;
    padding: .8em .6em .6em;
    border-radius: .3em;
}
/* Instagramロゴ */
.instaSize {
--iconSize: 42px;
--borderSize: .15rem;
width: var(--iconSize);
aspect-ratio: 1/1;
position: relative;
a {
    color: var(--white);
    width: 100%;
    height: 100%;
    position: absolute;
    top: -1.2em;
    left: -.3em;
    z-index: 10;
    font-size: .8rem;
    letter-spacing: .01em;
    text-transform: capitalize;
}
}
.insta {
background: linear-gradient(160deg, #427eff 0%, #f13f79 55%) no-repeat;
box-shadow: 0 0 8px #333;
width: 100%;
height: 100%;
border-radius: 20%;
overflow: hidden;
position: relative;
&::before{/*グラデーションを重ねるため*/
    content: '';
    position: absolute;
    top: 35%;
    left: -35%;
    width: 120%;
    height: 120%;
    background: radial-gradient(#ffd610 5%, rgba(255, 142, 90, 0.65) 55%, rgba(255, 88, 96, 0) 70%);
}
}
.istaInner {
display: inline-block;
width: 32%;
aspect-ratio: 1/1;
border: var(--borderSize) solid #fff;
border-radius: 50%;
position: absolute;
inset: 0;
margin: auto;
z-index: 2;
&::after {
    display: inline-block;
    content: "";
    width: 45%;
    aspect-ratio: 1/1;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: -6px;
    right: -6px;
}
}
.instaOuter {
display: inline-block;
width: 75%;
aspect-ratio: 1/1;
border: var(--borderSize) solid #fff;
border-radius: 28%;
position: absolute;
inset: 0;
margin: auto;
z-index: 1;
}
/* メイン背景色 */
body {
    &.ryuumai {
        background-color: var(--gradientRed);
    }
    &.tosio {
        background-color: var(--gradientBlue);
    }
    &.kezouji {
        background-color: var(--gradientDarkBlue);
    }
}

/* メイン 
================================================================ */
/* containerサイズ */
.container {
    @media (760px < width) {
        width: min(67vw, 640px);
        margin-inline: auto;
    }
}
/* パンナビ */
.panNav {
    font-size: .8rem;
    padding-left: .9rem;
    translate: 0 1.5rem;
    z-index: 300;
    .flex {
        gap: 1rem;
    }
    li:nth-child(-n + 2) {
        color: blue;
        text-decoration: underline;
        display: flex;
        &::after {
            content: "";
            display: block;
            width: .6rem;
            aspect-ratio: 1/1;
            background-color: #333;
            clip-path: polygon(0 0, 100% 50%, 0 100%, 40% 50%);
            translate: 9px 0;
        }
    }
}
/* トップテキスト */
.topText {
    line-height: 1.8;
    text-align: center;
    width: fit-content;
    margin-inline: auto;
}
.fc-blue {
    color: #0bf;
    font-weight: bold;
}
.fontDeco {
    text-decoration: underline 4px #0bf;
    padding: 0 .2em;
}
h2 {
    font-size: 1.25rem;
    text-align: center;
    color: #fff;
    background-color: #333;
    border-radius: 6px;
    padding: .3em 0;
}
table {
    border-top: 2px dotted #0bf;
    border-bottom: 2px dotted #0bf;
    font-size: .9rem;
    letter-spacing: .15em;
    border-spacing: .7rem 1.4rem; /* セルの間隔 */
    border-collapse: separate;
    width: 95%;
    margin-inline: auto;
    margin-top: 2rem;
}
th {
    width: min(120px, 23vw);
}
/* 特徴テキスト */
.features p {
    border-left: 2px dotted #0bf;
    line-height: 1.8;
    letter-spacing: .08em;
    padding-left: .8em;
    margin-block: 2rem 1.5rem;
    &:nth-of-type(n + 2) {
        line-height: 2.3;
    }
}


/* フッター================= */
footer {
    background-color: var(--black);
    color: var(--white);
}
footer small {
    display: block;
    padding: 2rem 0;
    text-align: center;
    text-transform: capitalize;
}