@charset "UTF-8"; /* CSS Document */ //ブレイクポイントを指定------ここから $xl: 1399px; $lg: 1199px; $md: 991px; $sm: 767px; $xs: 575px; @mixin xl { @media screen and (max-width: ($xl)) { @content; } } @mixin lg { @media screen and (max-width: ($lg)) { @content; } } @mixin md { @media screen and (max-width: ($md)) { @content; } } @mixin sm { @media screen and (max-width: ($sm)) { @content; } } @mixin xs { @media screen and (max-width: ($xs)) { @content; } } //ブレイクポイントを指定------ここまで //カラー指定 $main-color: #289c4c; $sub-color: #fabe00; //共通 p,dl,ul,li,a,dl,dt,dd{ margin: 0; } p{ line-height: 2em; @include xs{ line-height: 1.85em; } } body { letter-spacing: 0.03em; text-align: justify; } #wrapper{ overflow: hidden; } a{ transition: .2s ease-in-out; } .link-box a{ background: $main-color; max-width: 200px; padding: 1rem 3rem; color: #fff; border: 1px solid $main-color; border-radius: 5px; &:hover{ background: #fff; color: $main-color; } } h3{ font-family: "Barlow Condensed", sans-serif; font-weight: 500; font-style: normal; font-size: 64px; font-size: 6.4rem; letter-spacing: 0.06em; margin-bottom: 3rem; @include xs{ font-size: 55px; font-size: 5.5rem; margin-bottom: 2rem; } &::first-letter{ color: $main-color; } span{ font-size: 16px; font-size: 1.6rem; display: block; letter-spacing: 0.04em; } } .anchor { margin-top: -70px; padding-top: 70px; } //header------------------------------------------------------------------ここから header{ position: fixed; z-index: 999; width: 100%; transition: 0.3s; background: #fff; } .box-header{ background-color: inherit; height: 64px; padding: 1em; display: flex; align-items: center; justify-content: space-between; padding: 0 64px 0 5rem; @include sm { padding: 0 2rem; } .box-sitename{ margin: 0; display: flex; align-items: center; a{ display: contents; } img{ display: inline-block; width: 280px; margin-right: 2rem; @include xs { width: 200px; } } span{ font-size: 10px; font-size: 1.0rem; color: #333; @include sm { display: none; } } } .box-sitemenu{ display: flex; gap: 3rem; margin: 0; li{ display: flex; align-items: center; a{ color: #333; font-size: 14px; font-size: 1.4rem; transition: 0.3s; &:hover{ color: $sub-color; } } } .contact-button { display: inline-flex; justify-content: center; align-items: center; width: 64px; /* 正方形 */ height: 64px; background-color: $sub-color; transition: 0.3s; } /* メールアイコン画像を背景に */ .contact-button::after { content: ""; display: block; width: 40px; height: 23px; background-image: url("../img/mail-icon.svg"); background-repeat: no-repeat; background-position: center; background-size: contain; } @include md { display: none; } } } /* 全体調整CSS */ .hamburger-menubox *{ font-size: 16px; } .hamburger-menubox li{ font-size: 14px; } /* hamburgerここから */ /* inputを非表示 */ .input-hidden{ display: none; } /* label */ .hamburger-switch{ cursor: pointer; position: absolute; right: 0; top: 0; z-index: 9999; width: 4em; height: 4em; background: $main-color; } /* メニュー展開時にハンバーガーアイコンを固定 */ #hamburger-1:checked ~ .hamburger-switch{ position: fixed; } /* ハンバーガーアイコン */ .hamburger-switch-line1, .hamburger-switch-line1:before, .hamburger-switch-line1:after{ width: 35px; height: 1px; background:#fff; position: absolute; top: 50%; left: 50%; transition: .3s; content: ""; } .hamburger-switch-line1{ transform: translate(-50%, -50%); &::before{ transform: translate(-50%, -1000%); } &::after{ transform: translate(-50%, 1000%); } } /* ハンバーガーアイコン・アニメーション */ #hamburger-1:checked ~ .hamburger-switch .hamburger-switch-line1{ width: 0; &::before{ transform: rotate(45deg) translate(-40%, 1400%); } &::after{ transform: rotate(-45deg) translate(-40%, -1400%); } } /* メニューエリア */ .hamburger-menuwrap{ position: fixed; height: 100%; background: #fff; padding: 5em 7% 2em; z-index: 9998; transition: .3s; overflow-y: scroll; top: 0; left: 100%; width: 45%; @include md { width: 65%; } @include xs { width: 55%; } } /* メニューリスト */ .hamburger-menulist{ display: flex; justify-content: space-between; @include xs { flex-wrap: wrap; } li.menubox{ width: 45%; @include xs { width: 100%; } div{ margin-bottom: 5rem; @include xs { margin-bottom: 3rem; } a.main-link{ font-size: 14px; font-size: 1.4rem; font-weight: bold; display: flex; border-bottom: 0.5px solid #333; position: relative; color: $main-color; padding-bottom: 0.5rem; margin-bottom: 0.5rem; align-items: center; justify-content: space-between; transition: 0.3s; &:hover{ color: $sub-color; } &:hover span{ transition: 0.3s; background-color: $sub-color; &::after{ background-color: $sub-color; } &::before{ background-color: $sub-color; } } span{ position: relative; display: inline-block; width: 11px; height: 1px; margin: 10px 0; border-radius: 9999px; background-color: #333; transition: 0.3s; &::after{ content: ""; position: absolute; top: calc(50% - -1px); right: 0; width: 8px; height: 1px; border-radius: 9999px; background-color: #333; transform-origin: calc(100% - 2px) 50%; transform: rotate(-45deg); background-color: inherit; // ← ホバー時ずれなくすためのもの transition: inherit; // ← ホバー時ずれなくすためのもの } &::before{ content: ""; position: absolute; top: calc(50% - 2px); right: 0; width: 8px; height: 1px; border-radius: 9999px; background-color: #333; transform-origin: calc(100% - 2px) 50%; transform: rotate(45deg); background-color: inherit; // ← ホバー時ずれなくすためのもの transition: inherit; // ← ホバー時ずれなくすためのもの } } } ul{ li{ line-height: 1.5; a{ font-size: 12px; font-size: 1.2rem; text-decoration: none; color: #333; display: inline-block; transition: 0.3s; position: relative; &:hover{ color: $sub-color; } } } } } } } /* メニューエリア・アニメーション */ /* 右から */ #hamburger-1:checked ~ .hamburger-menuwrap{ left: 55%; @include md { left: 35%; } @include xs { left: 45%; } } /* コンテンツカバー */ #hamburger-1:checked ~ .hamburger-cover{ position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: 9997; background: rgba(3,3,3,.5); display: block; } .inner { width: 83%; margin: 0 auto; @include md { width: 90%; } @include sm { width: 100%; } } //footer------------------------------------------------------------------ここから #contact-box{ background-color: #f0f0ee; padding: 4rem 2rem 6rem; h3{text-align: center;} .inner{ background: #fff; border-radius: 10px; padding: 4rem 0; .d-flex{ align-items: center; justify-content: center; @include sm { flex-wrap: wrap; gap: 3rem; } .tel-box,.mail-box{ width: 50%; text-align: center; @include lg { width: 45%; } @include md { width: 40%; } @include sm { width: 100%; } h5{ font-size: 1.8rem; font-size: 18px; font-weight: bold; margin-bottom: 0.5rem; } p{margin-bottom: 1.5rem;} a{ cursor: pointer; display: inline-block; border-radius: 5px; padding: 1rem 5rem; line-height: 40px; display: inline-flex; align-items: center; @include lg { padding: 1rem 4rem; } @include md { padding: 1rem 2rem; } &:hover{ background-color: #fff; } i{ margin-right: 1rem; font-size: 2.6rem; font-size: 26px; } } } .tel-box{ border-right: 1px solid #dbdcdc; @include sm {border-right: none;} a{ background: $sub-color; border: 1px solid $sub-color; color: #333; font-family: "Barlow Condensed", sans-serif; font-weight: 500; font-style: normal; font-size: 33px; font-size: 3.3rem; letter-spacing: 0.08em; &:hover{ color: $sub-color; } } } .mail-box a{ background: $main-color; border: 1px solid $main-color; color: #fff; &:hover{ color: $main-color; } } } } } footer{ background-color: #fff; .inner{ padding: 4rem 0 3rem; } .d-flex{ justify-content: space-between; gap: 2rem; @include md { flex-wrap: wrap; } .footer-about{ margin-bottom: 8rem; @include md { margin-bottom: 0; } @include xs { width: 100%; } .logo-img{ width: 380px; @include lg { width: 330px; } @include xs { width: 300px; } } p{ margin-top: 3rem; font-size: 1.4rem; font-size: 14px; color: #fff; line-height: 1.75; } } .footer-nav{ display: flex; gap: 3rem; @include xs{gap: 2rem;} div{ >a{ display: block; color: $main-color; border-bottom: 1px solid #333; padding-bottom: 0.75rem; margin-bottom: 0.75rem; } ul{ li{ a{ color: #333; font-size: 14px; font-size: 1.4rem; transition: 0.3s; @include xs { font-size: 13px; font-size: 1.3rem; } &:hover{ color: $sub-color; } } } } } } } .insta a:hover{ opacity: 0.5; } .page-bottom{ align-items: end; .copyright{ color: #333; font-size: 11px; font-size: 1.1rem; } #page-top{ cursor: pointer; display: inline-block; width: 40px; height: 40px; transition: 0.3s; background-image: url("../img/top-button.svg"); background-repeat: no-repeat; background-size: auto; transition: 0.2s ease-in-out; &:hover{ opacity: 0.5; } } } } //ul-header------------------------------------------------------------------ここから #ul-header { padding-top: 12rem; @include xs { padding-top: 10rem; } .container { position: relative; } h1 { position:relative; display: inline-block; font-family: "Barlow Condensed", sans-serif; font-weight: 500; font-style: normal; font-size: 77px; font-size: 7.7rem; color: $main-color; background-color: #fff; letter-spacing: 0.1em; line-height: 1; margin-bottom: 2rem; @include xs{ font-size: 55px; font-size: 5.5rem; letter-spacing: 0.07em; margin-bottom: 1rem; } span{ font-size: 18px; font-size: 1.8rem; font-weight: 600; margin-left: 1.5rem; @include xs{ font-size: 16px; font-size: 1.6rem; margin-left: 1rem; } } &::before { content: ""; position: absolute; top: 50%; left: calc(-50vw + 50%); /* ← コンテナ中心基準で画面左端へ */ right: 100%; /* ← h2の左端まで伸ばす */ height: 1.5px; background-color: $main-color; transform: translateY(-50%); @include xs { content: none; } } &::after { content: ""; position: absolute; top: 50%; right: 100%; width: 2rem; height: 3px; background-color: #fff; transform: translateY(-50%); @include lg { width: 1rem; } @include xs { content: none; } } } .ul-img { width: 96%; height: 300px; overflow: hidden; margin: 0 0 0 auto; @include md { width: 95%; height: 260px; } @include sm { height: 220px; } @include xs { height: 180px; } img { width: 100%; height: 100%; object-fit: cover; object-position: center center; @include md { object-position: 85% center; } } } }