@charset "utf-8";

/* normalize
------------------------------------------------------------*/

html {
line-height: 1.5;
-webkit-text-size-adjust: 100%;
}

hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}

pre {
font-family: monospace, monospace;
font-size: 1em;
}

a {
background-color: transparent;
}

abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}

b,
strong {
font-weight: bolder;
}

code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}

small {
font-size: 80%;
}

sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}

sub {
bottom: -0.25em;
}

sup {
top: -0.5em;
}

img {
border-style: none;
}

button,
input,
optgroup,
select,
textarea {
font-family: inherit;
font-size: 100%;
line-height: 1.5;
margin: 0;
}

button,
input {
overflow: visible;
}

button,
select {
text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}

fieldset {
padding: 0.35em 0.75em 0.625em;
}

legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}

progress {
vertical-align: baseline;
}

textarea {
overflow: auto;
}

[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}

[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}

::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}

details {
display: block;
}

summary {
display: list-item;
}

template {
display: none;
}

[hidden] {
display: none;
}

/* End normalize */


/* formatting style
------------------------------------------------------------*/

* {
margin: 0;
padding: 0;
font-style: normal;
}

html {
font-size: 100%;
height: 100%;
}

body {
color: #3E3A36;
font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
font-style: normal; /* from Google fonts */
font-weight: 400; /* normal */
font-size: 0.9375rem;
line-height:1.5;
margin: 0;
padding: 0;
height: 100%;
text-size-adjust: 100%;
-webkit-text-size-adjust: 100%; /*スマホのランドスケープで文字を拡大させない*/
background: #FFF;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
body {
font-size: 1rem;
}
}

.garamond {
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-weight: 600;
}

*,
*::before,
*::after {
box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6 {
font-weight: 400; /* normal */
font-size: 1rem;
line-height:1.5;
}

p {
line-height:1.8;
}

p.note {
text-indent: -1em;
padding-left: 1em;
}

p + p {
padding-top: 1em;
}

ul {
list-style: none;
}

a {
text-decoration: none;
color: inherit;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
a {
transition: 0.6s;
}
a:hover {
opacity: 0.6;
}
}

a img {
border: none;
}

a:link,
a:visited,
a:hover,
a:active {
text-decoration: none;
color: inherit;
}

img {
vertical-align: bottom; /* aタグ等の余白対策 */
max-width: 100%;
height: auto;
}

a[href^="tel:"] {
cursor: default;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
a[href^="tel:"] {
pointer-events: none;
}
}

a[href^="tel:"]:hover {
opacity: 1;
}

span.inline-b {
display: inline-block;
}

*:focus-visible {
outline: solid 1px #B9913B;
outline-offset: 2px;
}

/* End formatting style */


/* responsive
------------------------------------------------------------*/

@media only screen and (max-width: 767px) { /* 767px以下で適用、スマホ専用CSS */
.sp-none {
display: none;
}
.tab-only {
display: none;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.sp-only {
display: none;
}
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.pc-only {
display: none;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.pc-none {
display: none; 
}
.tab-only {
display: none;
}
}

@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
}

@media only screen and (min-width: 1440px) { /* 1440px以上で適用、bg_max用CSS */
}

@media only screen and (min-width: 1920px) { /* 1920px以上で適用、フルHD以上用CSS */
}

@media only screen and (max-width: 374px) { /* 374px以下で適用、for mini */
}

@media only screen and (min-width: 375px) { /* 375px以上で適用、for mini */
.spmini-only {
display: none;
}
}

/* End responsive */


/* scroll-in（または、scroll-in-top） を付けて使用 基本はinnerに使用
------------------------------------------------------------*/

.fadein-up { /* scroll-in fadein-up */
opacity : 0;
transform : translate(0, 30px);
transition : 1.2s;
}
.fadein-up.on {
opacity : 1;
transform : translate(0, 0);
}

.fadein-right { /* 親要素に overflow: hidden; */
opacity : 0;
transform : translate(50px, 0);
transition : 1.2s;
}
.fadein-right.on {
opacity : 1;
transform : translate(0, 0);
}

.slidein-left { /* 必要に応じて display: inline-block; 等の設定を追加してスピード調整 */
clip-path: inset(0 100% 0 0);
transition: 1.2s ease-in-out;
will-change: clip-path; /* ブラウザに事前通知 */
opacity: 0;
}
.slidein-left.on {
clip-path: inset(0);
opacity: 1;
}

.hoge {
transition-delay: 0.3s;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.hoge > .hogehoge:nth-of-type(2) {
transition-delay: 0.3s;
}
}

/* End scroll-in */


/* header
------------------------------------------------------------*/

#header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 60px;
z-index: 999;
transition: 1.2s;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#header {
height: 90px;
}
}

.scroll #header {
background: rgba(255,255,255,0.9);
box-shadow: 0 1px 8px rgba(0,0,0,0.08);
}

.nav-open #header {
background: #FFF;
}

.header-inner {
position: relative;
display: flex;
justify-content: space-between;
margin: 0 0 0 24px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.header-inner {
margin: 0 0 0 32px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.header-inner {
margin: 0 32px;
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
.header-inner {
margin: 0 3%;
}
}
@media only screen and (max-width: 374px) { /* 374px以下で適用、for mini */
.header-inner {
margin: 0 0 0 16px;
}
}

.header-logo {
width: 124px;
margin: 10px 0 0 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.header-logo {
width: 156px;
margin: 20px 0 0 0;
}
}

.header-logo a {
display: block;
}

.hamburger {
padding: 29px 16px;
position: relative;
cursor: pointer;
border: none;
transition: 1.2s;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.hamburger {
display: none; 
}
}

span.hamburger-border,
span.hamburger-border:before,
span.hamburger-border:after {
display: block;
height: 2px;
width: 32px;
transition: 0.6s;
background-color: #1E2942;
}

span.hamburger-border:before,
span.hamburger-border:after {
content: "";
position: absolute;
}

span.hamburger-border:before {
margin-top: -12px;
}

span.hamburger-border:after {
margin-top: 12px;
}

.nav-open span.hamburger-border {
background-color: transparent;
}

.nav-open span.hamburger-border:before,
.nav-open span.hamburger-border:after {
margin-top: 0;
}

.nav-open span.hamburger-border:before {
transform: rotate(225deg);
}
.nav-open span.hamburger-border:after {
transform: rotate(-225deg);
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
body.nav-open {
overflow: hidden;
}
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.nav {
position: fixed;
top: 60px; /* ヘッダー下に */
right: 0;
width: 60%;
height: calc(100vh - 60px); /* ヘッダーの高さを差し引く */
background-color: #F7F3EC;
transition: transform 0.6s;
z-index: 950;
overflow-y: auto;
transform: translateX(100%);
border-top: solid 1px #E1DDD5;
}
.nav-open .nav {
transform: translateX(0);
}
}
@media only screen and (max-width: 767px) { /* 767px以下で適用、スマホ専用CSS */
.nav {
width: 100%;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.nav {
position: relative;
}
}

.nav-list {
font-size: 1rem;
margin: 1em 24px;
display: flex;
flex-direction: column;
text-align: center;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.nav-list {
margin: 1em 32px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.nav-list {
flex-direction: row;
margin: 0;
}
}

.nav-item {
color: #1E2942;
margin: 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.nav-item {
color: #1E2942;
margin: 25px 0 0 0.4em; /* gnavマージン調整 */
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
.nav-item {
margin: 25px 0 0 1.5em;
}
}

.nav-item.common {
border-bottom: solid 1px #E1DDD5;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.nav-item.common {
border-bottom: none;
}
}

.nav-item.common a {
display: block;
padding: 1.2em 0.5em;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.nav-item.common a {
padding: 0.5em;
}
}

.nav-item.contact a {
display: inline-block;
color: #FFF;
background: #B9913B;
margin: 2em 0 0 0;
padding: 0.5em 3em;
position: relative;
border-radius: 4px;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.nav-item.contact a {
display: block;
color: #B9913B;
background: transparent;
border: solid 1px #B9913B;
padding: 0.5em 1em; /* gnavマージン調整 */
margin: 0 0 0 0.5em;
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
.nav-item.contact a {
padding: 0.5em 1.5em;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.scroll .nav-item.contact a {
color: #FFF;
background: #B9913B;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.nav-item.contact a:hover {
color: #FFF;
background: #B9913B;
opacity: 1;
}
.scroll .nav-item.contact a:hover {
opacity: 0.6;
}
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.black-bg {
position: fixed;
left: 0;
top: 60px; /* ヘッダー下に */
width: 100vw;
height: calc(100vh - 60px); /* ヘッダーの高さを差し引く */
z-index: 900;
background-color: #333;
opacity: 0;
visibility: hidden;
transition: 0.6s;
cursor: pointer;
}
.nav-open .black-bg {
opacity: 0.8;
visibility: visible;
}
}

/* End header */


/* content
------------------------------------------------------------*/
/* End content */


/* top-common
------------------------------------------------------------*/

#top-common {
height: 72vw;
background-image: url("../images/common/top_common_bg_sp.webp");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
position: relative;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#top-common {
height: 432px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-common {
height: 30vw;
min-height: 432px;
max-height: 520px;
background-image: url("../images/common/top_common_bg_pc.webp");
}
}

#top-common .inner-common {
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding-top: 60px;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-common .inner-common {
padding-top: 90px;
}
}

#top-common h1 {
color: #1E2942;
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-size: 2.5rem;
font-weight: 500;
line-height: 1.1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#top-common h1 {
font-size: 3.125rem;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-common h1 {
font-size: 3.75rem;
}
}

.top-common-line {
width: 60px;
height: 2px;
border-radius: 1px;
background: #B9913B;
margin: 1.5rem 0 0 0;
}

.top-common-sub {
color: #3E3A36;
font-size: 0.875rem;
font-weight: 500;
letter-spacing: 0.05em;
margin: 1.5rem 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.top-common-sub {
font-size: 1rem;
}
}

/* End top-common */


/* section-common
------------------------------*/

.section-common {
padding: 60px 0 70px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.section-common {
padding: 80px 0 90px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.section-common {
padding: 110px 0 120px;
}
}

.section-common.bg-ivory {
background: #F7F3EC;
}

.section-common.bg-gray {
background: #F2F2EF;
}

.section-common.bg-navy {
background: #1E2942;
}

/* End section-common */


/* div-common
------------------------------*/

div.inner-common {
margin: 0 24px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
div.inner-common {
margin: 0 32px;
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
div.inner-common {
max-width: 1200px;
margin: 0 auto;
}
}
@media only screen and (max-width: 374px) { /* 374px以下で適用、for mini */
div.inner-common {
margin: 0 16px;
}
}

@media only screen and (max-width: 767px) { /* 767px以下で適用、スマホ専用CSS */
div.inner-common.sp-exp {
margin: 0 16px;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
div.inner-common.pc-900 {
max-width: 900px;
margin: 0 auto;
}
}

/* End div-common */


/* common
------------------------------*/

h2.common {
color: #1E2942;
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-size: 2.5rem;
font-weight: 500;
line-height: 1.1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
h2.common {
font-size: 3.125rem;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
h2.common {
font-size: 3.75rem;
}
}

h2.common:after {
content: "";
display: block;
width: 60px;
height: 2px;
border-radius: 1px;
background: #B9913B;
margin: 1.3rem 0 0 0;
}

h2.common.center {
text-align: center;
}

h2.common.center:after {
margin-left: auto;
margin-right: auto;
}

h3.common {
font-weight: 600;
letter-spacing: 0.05em;
font-size: 1.125rem;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
h3.common {
font-size: 1.25rem;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
h3.common.conpact {
font-size: 1.125rem; /* small */
}
}

.small-heading.common {
color: #B9913B;
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-size: 1.25rem;
font-weight: 500;
line-height: 1.3;
margin: 1.8em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.small-heading.common {
font-size: 1.5rem;
}
}

ul.point li {
font-size: 0.875rem;
padding: 0 0 0 1em;
margin: 1em 0 0 0;
position: relative;
}

ul.point li:first-of-type {
margin-top: 0;
}

ul.point li:before {
content: "";
display: block;
position: absolute;
width: 6px;
height: 6px;
background: #1E2942;
border-radius: 50%;
top: 0.75em; /* line-height:1.5; */
left: 0;
margin-top: -3px;
}

p.point {
position: relative;
padding: 0 0 0 1em;
}

p.point:before {
content: "";
display: block;
position: absolute;
width: 0.5em;
height: 0.5em;
background: #1E2942;
top: 0.65em;
left: 0;
}

/* End common */


/* btn
------------------------------*/

a.btn-common {
display: inline-block;
padding: 0.8em 3.5em 0.8em 1.5em;
position: relative;
border-radius: 4px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
a.btn-common {
min-width: 13em; /* 必要に応じて上書き */
padding: 0.6em 3em 0.6em 1em;
}
}

a.btn-common:before {
content: "";
width: 20px;
height: 1px;
background: currentColor;
position: absolute;
top: 50%;
right: 16px;
transform: translateY(-50%);
}

a.btn-common:after {
content: "";
width: 10px;
height: 10px;
border-top: solid 1px currentColor;
border-right: solid 1px currentColor;
position: absolute;
top: 50%;
right: 16px;
transform: translateY(-50%) rotate(45deg);
transform-origin: center;
}

/* End btn */


/* btn-large
------------------------------*/

a.btn-large {
display: inline-flex;
align-items: center;
min-width: 280px;
padding: 1em 1.5em;
border-radius: 5px;
text-align: left;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
a.btn-large {
min-width: 300px;
padding: 1.2em 2em;
}
}

.btn-large-icon {
width: 40px;
flex-shrink: 0;
margin: 0 1.2em 0 0;
}

.btn-large-icon img {
display: block;
width: 100%;
}

.btn-large-text {
display: flex;
flex-direction: column;
line-height: 1.2;
letter-spacing: 0.05em;
gap: 4px;
}

.btn-large-text .sub {
font-size: 0.8125rem;
font-weight: 500;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.btn-large-text .sub {
font-size: 0.875rem;
}
}

.btn-large-text .main {
font-size: 1rem;
font-weight: 600;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.btn-large-text .main {
font-size: 1.125rem;
}
}

/* End btn-large */


/* fotter-fix
------------------------------------------------------------*/

body {
display: flex;
flex-direction: column;
min-height: 100vh;
}

#footer {
margin-top: auto;
}

/* End fotter-fix */


/* footer-contact
------------------------------------------------------------*/

#footer-contact {
text-align: center;
background-image: url("../images/common/footer_contact_bg_sp.webp");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#footer-contact {
background-image: url("../images/common/footer_contact_bg_pc.webp");
}
}

.footer-contact-heading p.lead {
margin: 3rem 0 0 0;
}

.footer-contact-btn {
margin: 2.5em 0 0 0;
}

.footer-contact-btn .btn-email {
color: #FFF;
background: #B9913B;
}

/* btn-large 上書き
------------------------------*/

.footer-contact-btn a.btn-large {
border-radius: 0;
}

.footer-contact-btn .btn-large-text .main {
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-size: 1.5rem;
font-weight: 500;
letter-spacing: normal;
}

.footer-contact-btn .btn-large-text .sub {
font-weight: 400;
}

/* End footer-contact */


/* footer-cont
------------------------------------------------------------*/

#footer-cont {
background: #1E2942;
color: #FFF;
padding: 60px 0 100px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#footer-cont {
padding: 80px 0 100px;
}
}

.footer-main {
display: flex;
flex-direction: column;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.footer-main {
flex-direction: row;
justify-content: space-between;
align-items: flex-end;
}
}

.footer-info {
text-align: left;
}

.footer-logo {
display: inline-block;
width: 124px;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.footer-logo {
width: 156px;
}
}

.footer-logo img {
display: block;
width: 100%;
}

.footer-info p + p {
padding-top: 0;
}

.footer-company {
font-weight: 600;
font-size: 1.125rem;
margin: 1.5rem 0 0 0;
padding: 0 0 0.5rem 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.footer-company {
font-size: 1.25rem;
}
}

.footer-address,
.footer-email {
font-size: 0.875rem;
line-height: 1.5;
margin: 0.5em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.footer-address,
.footer-email {
font-size: 0.9375rem;
}
}

/* スマホ用ナビ */
.footer-nav {
margin: 2em 0 0 0;
border-top: solid 1px rgba(255,255,255,0.3);
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.footer-nav {
display: none;
}
}

.footer-nav li {
border-bottom: solid 1px rgba(255,255,255,0.3);
}

.footer-nav a,
.footer-nav button {
display: block;
padding: 1.2em 3em 1.2em 1em;
position: relative;
font-size: 0.875rem;
letter-spacing: 0.05em;
}

.footer-nav a:after,
.footer-nav button:after {
content: "";
width: 8px;
height: 8px;
border-top: solid 1px #FFF;
border-right: solid 1px #FFF;
position: absolute;
top: 50%;
right: 1em;
transform: translateY(-50%) rotate(45deg);
}

.footer-nav button {
color: #FFF;
background: none;
border: 0;
font-family: inherit;
cursor: pointer;
width: 100%;
text-align: left;
}

.footer-bottom {
margin: 2.5em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.footer-bottom {
display: flex;
flex-direction: column-reverse;
align-items: center;
gap: 1em;
margin: 1.5em 0 0 0;
padding: 1.5em 0 0 0;
border-top: solid 1px rgba(255,255,255,0.5);
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.footer-bottom {
flex-direction: row;
justify-content: space-between;
gap: 3em;
}
}

.footer-copyright {
font-size: 0.8125rem;
line-height: 1.5;
text-align: center;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.footer-copyright {
font-size: 0.875rem;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.footer-copyright {
text-align: left;
}
}

/* PC、タブレット用ナビ */
.footer-nav-bottom {
display: none;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.footer-nav-bottom {
display: flex;
align-items: center;
}
}

.footer-nav-bottom:before,
.footer-nav-bottom li:after {
content: "";
display: block;
width: 1px;
height: 1.2em;
background: rgba(255,255,255,0.5);
}

.footer-nav-bottom li {
display: flex;
align-items: center;
}

.footer-nav-bottom a,
.footer-nav-bottom button {
display: inline-block;
padding: 0 1.2em;
font-size: 0.9375rem;
letter-spacing: 0.05em;
}

.footer-nav-bottom button {
color: #FFF;
background: none;
border: 0;
font-family: inherit;
cursor: pointer;
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.footer-nav-bottom a:hover,
.footer-nav-bottom button:hover {
color: #B9913B;
opacity: 1;
}
}

/* End footer-cont */


/* cookie-consent
------------------------------------------------------------*/

.cookie-consent {
width: calc(100% - 32px);
position: fixed;
left: 50%;
bottom: 16px;
transform: translateX(-50%);
background: #F2F2EF;
border-radius: 4px;
box-shadow: 0 1px 8px rgba(0,0,0,0.08);
opacity: 0;
visibility: hidden;
transition: opacity 0.4s, visibility 0.4s;
z-index: 900;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cookie-consent {
width: calc(100% - 48px);
bottom: 24px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cookie-consent {
width: 100%;
border-radius: 0;
bottom: 0;
}
}

.cookie-consent.on {
opacity: 1;
visibility: visible;
}

.cookie-consent-close {
width: 40px;
height: 40px;
position: absolute;
top: 6px;
right: 6px;
background: none;
border: 0;
cursor: pointer;
z-index: 1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cookie-consent-close {
top: 8px;
right: 8px;
}
}

.cookie-consent-close:before,
.cookie-consent-close:after {
content: "";
width: 16px;
height: 1px;
background: #1E2942;
position: absolute;
top: 50%;
left: 50%;
}

.cookie-consent-close:before {
transform: translate(-50%, -50%) rotate(45deg);
}

.cookie-consent-close:after {
transform: translate(-50%, -50%) rotate(-45deg);
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cookie-consent-close:hover:before,
.cookie-consent-close:hover:after {
background: #B9913B;
}
}

.cookie-consent-inner {
padding: 1.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cookie-consent-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 3em;
padding: 1.5em 4em 1.5em 2em;
}
}

.cookie-consent-text {
text-align: left;
}

.cookie-consent-title {
color: #1E2942;
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-size: 1.25rem;
font-weight: 600;
line-height: 1.2;
margin: 0 0 4px 0;
padding-right: 2em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cookie-consent-title {
font-size: 1.375rem;
}
}

.cookie-consent-text p:not(.cookie-consent-title) {
font-size: 0.8125rem;
line-height: 1.6;
margin: 0;
padding-top: 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cookie-consent-text p:not(.cookie-consent-title) {
font-size: 0.875rem;
}
}

.cookie-consent-text a {
color: #1E2942;
text-decoration: underline;
text-underline-offset: 3px;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cookie-consent-text a:hover {
color: #B9913B;
opacity: 1;
}
}

.cookie-consent-btn {
display: flex;
gap: 10px;
margin: 1.5em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cookie-consent-btn {
flex-shrink: 0;
margin: 0;
}
}

.cookie-btn {
width: 50%;
min-height: 44px;
border-radius: 5px;
font-size: 0.8125rem;
font-weight: 600;
letter-spacing: 0.03em;
cursor: pointer;
transition: 0.3s;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.cookie-btn {
font-size: 0.875rem;
width: 110px;
}
}

.cookie-btn.reject {
color: #1E2942;
background: #F2F2EF;
border: solid 1px #1E2942;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cookie-btn.reject:hover {
color: #B9913B;
border-color: #B9913B;
}
}

.cookie-btn.accept {
color: #FFF;
background: #1E2942;
border: solid 1px #1E2942;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cookie-btn.accept:hover {
background: #B9913B;
border-color: #B9913B;
}
}

/* End cookie-consent */


/* page-top
------------------------------------------------------------*/

#page-top {
position: fixed;
bottom: 16px;
right: 16px;
width: 46px;
height: 46px;
border-radius: 100vh;
background: #FFF;
box-shadow: 0 0 0 1px #E1DDD5;
opacity:0;
transform : translate(0, 100px);
transition : 1.2s;
z-index: 700;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#page-top{
bottom: 24px;
right: 24px;
}
}

#page-top.on {
opacity:1;
transform : translate(0, 0);
}

.cookie-consent.on + #page-top.on {
opacity: 0;
visibility: hidden;
pointer-events: none;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.cookie-consent.on + #page-top.on {
bottom: 140px;
opacity: 1;
visibility: visible;
pointer-events: auto;
}
}

#page-top a {
display: block;
width: 100%;
height: 100%;
}

#page-top a:before {
content: "";
width: 15px;
height: 15px;
border: 0;
border-top: solid 1px #1E2942;
border-left: solid 1px #1E2942;
position: absolute;
top: 50%;
left: 50%;
margin: -7px 0 0 0;
transform: rotate(45deg);
transform-origin:0 0;
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#page-top a:hover {
opacity: 1;
}
#page-top a:hover:before {
border-top-color: #B9913B;
border-left-color: #B9913B;
}
}

/* End page-top */







