@charset "utf-8"; $black: #3a3a3a; $green1: #547F47; $green2: #7FA742; $bg: #FAF9F7; @mixin position-center { position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } * { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 62.5%; } body { background-color: $bg; font-size: 1.66rem; font-family: "Noto Serif JP", serif; -webkit-font-smoothing: antialiased; color: $black; } img { max-width: 100%; } li { list-style-type: none; } main { margin: 0 200px; max-width: 1280px; } section { padding: 150px 0; } .flex-box { display: flex; } .row-reverse { flex-direction: row-reverse; } .tag-wrapper { position: absolute; top: 0; left: 50px; background-color: #fff; text-align: center; border-top: 0px; z-index: 10; writing-mode: vertical-rl; display: flex; .explain-tag { background-color: #fff; padding: 20px 10px; letter-spacing: 0.8em; position: relative; } .tag-img { width: 24px; height: 24px; display: block; margin: 0 auto 20px; position: relative; } } header { background-color: $green1; color: #fff; padding: 5px; position: sticky; .header-wrapper { display: flex; justify-content: center; align-items: center; img { width: 25px; height: 25px; } } } .fv-wrapper { background-color: $green1; height: 100vh; position: relative; .fv { width: 66vw; background-image: url(../img/salon-fv.jpg); background-repeat: no-repeat; background-size: cover; background-position: bottom; border-radius: 0 50px 0 0; } h1 { position: absolute; top: 50%; right: 7%; transform: translateY(-50%); text-align: right; img { width: 200px; margin-bottom: 30px; } p { color: #fff; font-size: 1.6rem; mix-blend-mode: difference; letter-spacing: 1.5px; line-height: 40px; } } .top-address { position: absolute; bottom: 120px; left: 90px; color: #fff; padding: 30px 40px; background-color: #547f47b7; dt { font-size: 3rem; font-weight: bold; margin-bottom: 30px; } address { font-style:normal; } } .scroll-arrow { position: absolute; bottom: 90px; left: 50%; transform: translateX(-50%); height: 100px; transition-duration: 0.5s; &:hover { bottom: 40px; transition-duration: 0.5s; } } } .section-title { font-size: 3rem; letter-spacing: 0.2em; font-weight: normal; text-align: center; color: #4e4e4e; margin-bottom: 100px; position: relative; span { font-size: 5rem; } .en { font-size: 1.3rem; color: #a84b3f; display: block; } &::after { content: url(../img/leaf.png); margin: 0 auto; position: absolute; top: -50px; left: 50%; transform: translateX(-50%); } } .article { display: flex; flex-direction: row-reverse; justify-content: center; .article-title { font-size: 2rem; writing-mode: vertical-rl; margin-left: 180px; } .article-text-wrapper { writing-mode: vertical-rl; .article-text { margin: 0 70px; &:nth-of-type(2) { margin-top: 30px; } &:nth-of-type(4) { margin-top: 50px; } } } } .salon-about { .flex-box { align-items: flex-end; .about-left { position: relative; .salon-img { height: 480px; width: 620px; object-fit: cover; object-position: bottom; } } .about-right { background-color: $green1; color: #fff; padding: 40px; height: 300px; width: 500px; text-align: center; position: relative; margin-left: -40px; margin-bottom: -80px; dt { font-size: 2.4rem; text-align: center; margin-top: 20px; } dd { margin: 30px 60px 0; font-size: 1.4rem; } } } } .menu { .tab-btn-wrapper { margin: 100px 0; text-align: center; .flex-box { justify-content: center; flex-wrap: wrap; li { margin: 0 30px; color: $green1; text-decoration: none; font-size: 1.8rem; padding: 5px 30px; border: 0.5px solid rgb(179, 179, 179); border-radius: 10px; background-color: #fff; transition-duration: 0.5s; &:hover { transition-duration: 0.5s; color: #fff; background-color: $green1; } } } } .grid { display: grid; grid-template-columns: 1fr 1fr 1fr; align-content: space-between; align-items: stretch; justify-self: center; justify-content: space-between; margin: 0 auto; justify-items: center; gap: 60px; place-content: center; figure { display: inline-block; width: 300px; position: relative; .tag-wrapper { position: absolute; top: 0; left: 20px; background-color: #fff; text-align: center; border-top: 0px; z-index: 10; writing-mode: vertical-rl; display: flex; .explain-tag { background-color: #fff; padding: 20px 10px; letter-spacing: 0.3em; position: relative; font-size: 1.4rem; } .tag-img { width: 24px; height: 24px; display: block; margin: 0 auto 20px; } } img { width: 300px; height: 300px; object-position: center; object-fit: cover; } figcaption { h3 { font-size: 2rem; text-align: center; margin: 5px; } p { font-size: 1.4rem; } } } } } .knowledge { .grid { display: grid; width: auto; grid-row-start: 1; grid-template: "grid-item1 grid-item2" "grid-item1 grid-item3"; align-content: space-between; align-items: stretch; gap: 20px; .grid-item { position: relative; &:hover { opacity: 0.5; } a { color: $black; } .tag-img { width: 24px; height: 24px; display: block; margin: 0 auto 20px; } } .grid-item1 { grid-row-start: 1; grid-row-end: 2; grid-area: grid-item1; width: 600px; img { height: 100%; width: 100%; object-fit: cover; object-position: 70%; } } .grid-item2 { grid-area: grid-item2; img { width: 100%; height: 100%; object-fit: cover; } } .grid-item3 { grid-area: grid-item3; img { width: 100%; height: 100%; object-fit: cover; } } } .answers-wrapper { .answers { dt { color: $green1; text-align: center; } } } } .info { .site-logo { text-align: center; display: block; width: 150px; margin: 0 auto; } .salon-info-wrapper { margin: 0 auto; text-align: center; margin-top: 30px; dt { font-size: 2.2rem; font-weight: bold; margin-bottom: 30px; } dd { font-size: 1.4rem; margin: 10px 0; .detail-head { font-size: 1.6rem; font-weight: bold; } } } } footer { background-color: $green1; color: #fff; .footer-flex { padding: 50px 0; justify-content: center; .footer-icon { width: 40px; margin: 0 30px; } } .small-wrapper { font-size: 1rem; text-align: center; padding: 5px 0; } } .element { opacity: 0; visibility: hidden; transform: translateY(30px); transition: opacity 0.5s, visibility 1s, transform 1s; transition-duration: 0.5s; } .is-fadein { opacity: 1; visibility: visible; transform: translateX(0); animation: fadein 0.8s forwards ease-out; transition-duration: 0.5s } .is-fadein-sp { opacity: 1; visibility: visible; transform: translateX(0); animation: fadeinsp 0.8s forwards ease-out; transition-duration: 0.5s; } @keyframes fadein { 0% { opacity: 0; transform: translateY(30px); } 66.67% { opacity: 1; } 100% { opacity: 1; transform: translateY(0); transition-duration: 0.5s; } } @keyframes fadeinsp { 0% { opacity: 0; transform: translateY(40px); } 66.67% { opacity: 1; } 100% { opacity: 1; transform: translateY(0); } }