html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; }

body { line-height: 1; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }

nav ul { list-style: none; }

blockquote, q { quotes: none; }

blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }

a { margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent; color: inherit; text-decoration: none; }

/* change colours to suit your needs */
ins { background-color: #ff9; color: #000; text-decoration: none; }

/* change colours to suit your needs */
mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }

del { text-decoration: line-through; }

abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }

table { border-collapse: collapse; border-spacing: 0; }

/* change border colour to suit your needs */
hr { display: block; height: 1px; border: 0; border-top: 1px solid #cccccc; margin: 1em 0; padding: 0; }

input, button, textarea, select { margin: 0; padding: 0; background: none; border: none; border-radius: 0; outline: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; }

textarea { resize: none; }

html, body { -webkit-text-size-adjust: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }

img, video { vertical-align: middle; max-width: 100%; height: auto; }

img[src$=".svg"] { width: 100%; }

li { list-style: none; }

main { display: block; }

h1, h2, h3, h4, h5 { font-weight: inherit; }

img { width: 100%; }

*:focus { outline: none; }

/* --------------------------------------------------
Common
-------------------------------------------------- */
:root { font-size: 10px; --font-body-family: aktiv-grotesk, sans-serif; --font-body-weight: 400; --font-body-size: 1.4rem; --font-body-lh: 1.15; --font-headng: bodoni-urw, serif; --primary-color: #000000; --white-color: #FFFFFF; --bg-color: #FFFFFF; --acc-color: #E61B33; --drop-shadow: 0 0.15rem 0.3rem rgba(0,0,0,0.16); --ease: cubic-bezier(0.25, 0.1, 0.25, 1); --easein: cubic-bezier(0.32, 0, 0.67, 0); --easeout: cubic-bezier(0.33, 1, 0.68, 1); --easeinout: cubic-bezier(0.55, 0.05, 0.22, 0.99); --bounce: cubic-bezier(0.68, -0.6, 0.32, 1.6); --back: cubic-bezier(0.34, 1.56, 0.64, 1); --contents-width: 390; }
@media screen and (min-width: 768px) { :root { font-size: clamp(5px, 10px, calc(var(--vw) * (0.0104 * 100))); --font-body-size: 2rem; --contents-width: 1240; } }

body { font-family: var(--font-body-family); font-size: var(--font-body-size); font-weight: var(--font-body-weight); line-height: var(--font-body-lh); background: var(--bg-color); color: var(--primary-color); }
body *:not(img)::selection { background: #d7c03e; }
body *:not(img)::-moz-selection { background: #d7c03e; }
body.isLoaded { opacity: 1 !important; transition: opacity 1s ease 0s; }

@media screen and (max-width: 767px) { .pc { display: none !important; } }
@media screen and (min-width: 768px) { .sp { display: none !important; } }
/* --------------------------------------------------
Header
-------------------------------------------------- */
.header { display: contents; }
.header__topBar { display: contents; }
.header__topBarLogo { font-family: var(--font-headng); font-size: 12.1vw; line-height: 0.7; letter-spacing: 0.35em; display: flex; justify-content: space-between; padding: calc(var(--contents-width) / 2480 * 5.5rem) 3.63%; position: relative; z-index: 10; }
#wrapper.menuOpen .header__topBarLogo { position: sticky; left: 0; top: 0; }
.header__topBarLogoLink { width: 100%; display: flex; justify-content: space-between; }
.header__topBarLogo--inc .header__topBarLogoGroup:nth-child(2) { margin: 0 -0.35em 0 0; }
.header__topBarLogo--center { justify-content: center; }
.header__topBarLogo::after { display: block; content: ""; background: #d7c03e; width: 17.14%; aspect-ratio: 425 / 73; position: absolute; right: 0; top: 50%; transform: translate(0, -50%); }
.header__topBarToggleBtn { padding: calc(var(--contents-width) / 2480 * 9rem) 0 calc(var(--contents-width) / 2480 * 22.5rem) 3.63%; position: sticky; left: 0; top: 0; z-index: 10; }
#wrapper.menuOpen .header__topBarToggleBtn { top: 4rem; }
.header__topBarToggleBtnLink { display: inline-flex; align-items: center; column-gap: 0.5rem; }
.header__topBarToggleBtnIcon { width: 2rem; aspect-ratio: 1; display: flex; justify-content: center; align-items: center; column-gap: 0.5rem; }
.header__topBarToggleBtnIcon::before, .header__topBarToggleBtnIcon::after { display: block; content: ""; width: 0.5rem; aspect-ratio: 1; border-radius: 50%; background: currentColor; }
.header__topBarToggleBtnText--close { display: none; }
.header__menu { display: none; position: fixed; inset: 0; z-index: 9; background: var(--bg-color); padding: 38.31% 3.63% 0; }
.header__navList { display: flex; flex-direction: column; row-gap: 2.4rem; }
.header__navListItem { width: 100%; }
.header__navListItemText { display: inline-block; transform: scale(0.9, 1); }
.header__navListItemLink--hasChild { pointer-events: none; }
.header__navListItemChild { padding: 1.2rem 0 0 1.2rem; }
.header__navListItemChildList { display: flex; flex-direction: column; row-gap: 1.2rem; }
.header__navListItemChildListItemText { display: inline-block; transform: scale(0.9, 1); }
.header__navListItem--current { color: #B2B2B2; }
.header__back { padding: 0 3.63%; margin: calc(var(--contents-width) / 2480 * -10rem) 0 calc(var(--contents-width) / 2480 * 10rem); display: flex; flex-direction: column; row-gap: 0.5rem; font-size: calc(var(--font-body-size) * 0.75); }
.header__back > * { width: 100%; }

.header:not(:has(.header__topBar)) .header__back { margin-top: 0; padding-top: calc(var(--contents-width) / 2480 * 10rem); }

#wrapper.menuOpen .header__topBar { position: fixed; inset: 0; bottom: auto; z-index: 999; }
#wrapper.menuOpen .header__topBarToggleBtnText--open { display: none; }
#wrapper.menuOpen .header__topBarToggleBtnText--close { display: inline; }

@media screen and (min-width: 768px) { .header__topBar { position: static; }
  .header__topBarToggleBtn { display: none; }
  .header__menu { display: block; position: sticky; background: none; padding: calc(var(--contents-width) / 2480 * 22.5rem) 0 calc(var(--contents-width) / 2480 * 10rem); }
  .header__navList { flex-direction: row; justify-content: center; column-gap: 5rem; }
  .header__navListItem { width: auto; position: relative; }
  .header__navListItemLink { transition: color 0.4s var(--easeout) 0s; }
  .header__navListItemLink--hasChild { pointer-events: auto; }
  .header__navListItemLink:hover, .header__navListItemLink.isOpen { color: #B2B2B2; }
  .header__navListItemChild { padding: 1.2rem 0 0; position: absolute; left: -50%; right: -50%; top: calc(100% - 0.1rem); display: none; }
  .header__navListItemChildList { text-align: center; }
  .header__navListItemChildListItemLink { transition: color 0.4s var(--easeout) 0s; }
  .header__navListItemChildListItemLink:hover { color: #B2B2B2; }
  .header__back { padding: 0 5.65%; margin: calc(var(--contents-width) / 2480 * 10rem) 0 0; }
  .header__backContentLink { transition: color 0.4s var(--easeout) 0s; }
  .header__backContentLink:hover { color: #B2B2B2; }
  .header:not(:has(.header__topBar)) { padding-bottom: 3rem; }
  .header:not(:has(.header__topBar)) .header__back { padding: calc(var(--contents-width) / 2480 * 7rem) 3% 0; } }
/* --------------------------------------------------
Content
-------------------------------------------------- */
.contents { padding: 0 0 calc(var(--contents-width) / 2480 * 50rem); }

/* --------------------------------------------------
Footer
-------------------------------------------------- */
.footer { padding: 2rem 3.63%; border-top: 0.1rem solid; font-size: calc(var(--font-body-size) * 0.7); }
.footer__inner { display: flex; flex-direction: column; row-gap: calc(1em * var(--font-body-lh)); }
.footer__contactTextLink { text-decoration: underline; }
.footer__snsListItemLink { text-decoration: underline; }

@media screen and (min-width: 768px) { .footer { position: fixed; inset: 0; top: auto; background: var(--white-color); z-index: 8; }
  .footer__inner { flex-direction: row; justify-content: space-between; }
  .footer__contactTextLink { transition: opacity 0.4s var(--easeout) 0s; }
  .footer__contactTextLink:hover { opacity: 0.5; }
  .footer__snsListItemLink { transition: opacity 0.4s var(--easeout) 0s; }
  .footer__snsListItemLink:hover { opacity: 0.5; } }
