@charset "UTF-8";
/*--------------------------------------------
WEB FONTS
---------------------------------------------*/
@font-face {
  src: url("../fonts/Noto_Sans_JP/NotoSansJP-VariableFont_wght.woff2") format("woff2");
  font-family: "Noto Sans JP";
  font-optical-sizing: none;
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --fontFamily: "Hiragino Kaku Gothic ProN" , "Helvetica Neue" , Helvetica , "Hiragino Sans" , Arial , Meiryo , "Yu Gothic" , "Noto Sans JP" , sans-serif;
}

@font-face {
  src: url("../fonts/Roboto/Roboto-VariableFont_wdth,wght.woff2") format("woff2");
  font-family: "Roboto";
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}
.roboto {
  font-family: "Roboto", sans-serif;
}

/*--------------------------------------------
REGULATE
---------------------------------------------*/
* {
  margin: 0;
  padding: 0;
  word-break: break-all;
}

*, *::before, *::after {
  box-sizing: border-box;
}

*:not(fieldset):not(progress):not(meter) {
  border-width: 0;
  border-style: solid;
  background-origin: border-box;
  background-repeat: no-repeat;
}

:root {
  color-scheme: light;
  scrollbar-gutter: stable;
}

:where(html) {
  block-size: 100%;
  -webkit-text-size-adjust: none;
  tab-size: 2;
}

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}
:where(html:has(dialog[open])) {
  overflow: clip;
}

:where(body) {
  font-weight: 400;
  text-rendering: optimizeSpeed;
  min-block-size: 100%;
  line-height: 1;
  overflow-x: clip;
  overflow-y: auto;
  overflow-wrap: anywhere;
  line-break: strict;
  font-optical-sizing: auto;
}

:where(body) {
  font-family: var(--fontFamily);
  font-feature-settings: "palt" on;
  color: var(--base);
}

main {
  overflow-x: clip;
}

:where(svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, svg, video) {
  inline-size: auto;
  font-size: 0;
  vertical-align: top;
  max-width: inherit;
}

:where(img) {
  image-rendering: -webkit-optimize-contrast;
}

:where(svg) {
  stroke: none;
  fill: currentColor;
}

:where(svg:not([fill])) {
  stroke: currentColor;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

:where(svg:not([width])) {
  inline-size: 5rem;
}

:where(input, button, textarea, select, input[type=file]::-webkit-file-upload-button) {
  color: inherit;
  font: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  outline: none;
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(p, h1, h2, h3, h4, h5, h6, a):has(> img:only-child) {
  font-size: 0;
  line-height: 1;
}

:where(ul, ol) {
  list-style: none;
}

:where(a) {
  text-decoration-skip-ink: auto;
  text-decoration: none;
  color: var(--base);
  text-underline-offset: calc((1lh - 1em) / 2);
  cursor: pointer;
  touch-action: manipulation;
}

:where(button, [type=button], [type=reset], [type=submit]) {
  touch-action: manipulation;
}

:where(button) {
  background-color: transparent;
}

:where(button, input, label[for], select, summary, textarea, [tabindex]:not([tabindex*="-"])) {
  cursor: pointer;
  touch-action: manipulation;
}

:where(:disabled) {
  cursor: not-allowed;
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed;
}

:where(button, button[type], input[type=button], input[type=submit], input[type=reset], input[type=file]::-webkit-file-upload-button, input[type=file]::file-selector-button) {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  user-select: none;
  background-color: inherit;
  border-radius: 0;
}

:where(select) {
  appearance: none;
}

:where(table) {
  border-collapse: collapse;
}

:where(picture) {
  display: block;
  font-size: 0;
}

:where(em, dfn) {
  font-style: normal;
}

:where(dialog, [popover]) {
  border: none;
  background: none;
  color: inherit;
  inset: unset;
  max-width: unset;
  max-height: unset;
  max-width: 100%;
  max-height: 100%;
}

:where(dialog:not([open]), [popover]:not(:popover-open)) {
  display: none;
}

:where(summary) {
  display: block;
  list-style: none;
}

:where(summary)::-webkit-details-marker {
  display: none;
}

/*--------------------------------------------
UNIT
---------------------------------------------*/
@media screen and (width <= 768px) {
  @property --breakPoint {
    syntax: "<number>";
    inherits: false;
    initial-value: 375;
  }
  @property --wrapperSize {
    syntax: "<number>";
    inherits: false;
    initial-value: 335;
  }
  @property --gutter {
    syntax: "<number>";
    inherits: false;
    initial-value: 20;
  }
}
@media print, screen and (width > 768px) {
  @property --breakPoint {
    syntax: "<number>";
    inherits: false;
    initial-value: 1040;
  }
  @property --wrapperSize {
    syntax: "<number>";
    inherits: false;
    initial-value: 1000;
  }
  @property --gutter {
    syntax: "<number>";
    inherits: false;
    initial-value: 20;
  }
}
:root {
  --percentBase: * 100% / var(--wrapperSize);
  --viewportBase: * 100% / var(--breakPoint);
}

@media screen and (width < 1040px) {
  :root {
    --vwBase: * 100vw / var(--breakPoint);
  }
}
@media print, screen and (width >= 1040px) {
  :root {
    --vwBase: * 1px;
  }
}
/*--------------------------------------------
COLOR
---------------------------------------------*/
@property --base {
  syntax: "<color>";
  inherits: false;
  initial-value: #514327;
}
@property --primary {
  syntax: "<color>";
  inherits: false;
  initial-value: #3b8500;
}
@property --primary02 {
  syntax: "<color>";
  inherits: false;
  initial-value: #f0f7de;
}
@property --primary03 {
  syntax: "<color>";
  inherits: false;
  initial-value: #fbf7ef;
}
@property --secondary {
  syntax: "<color>";
  inherits: false;
  initial-value: #c45500;
}
/*--------------------------------------------
FILTER
---------------------------------------------*/
@property --filterWhite {
  syntax: "*";
  inherits: false;
  initial-value: brightness(0) invert(1);
}
@property --filterBase {
  syntax: "*";
  inherits: false;
  initial-value: invert(24%) sepia(17%) saturate(1274%) hue-rotate(2deg) brightness(90%) contrast(84%);
}
@property --filterPrimary {
  syntax: "*";
  inherits: false;
  initial-value: invert(41%) sepia(43%) saturate(6653%) hue-rotate(68deg) brightness(95%) contrast(102%);
}
@property --filterPrimary02 {
  syntax: "*";
  inherits: false;
  initial-value: invert(96%) sepia(6%) saturate(517%) hue-rotate(31deg) brightness(99%) contrast(100%);
}
@property --filterPrimary03 {
  syntax: "*";
  inherits: false;
  initial-value: invert(92%) sepia(5%) saturate(559%) hue-rotate(333deg) brightness(107%) contrast(97%);
}
@property --filterSecondary {
  syntax: "*";
  inherits: false;
  initial-value: invert(35%) sepia(83%) saturate(944%) hue-rotate(357deg) brightness(93%) contrast(108%);
}
/*--------------------------------------------
TRANSITION
---------------------------------------------*/
@property --easeInSine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.47, 0, 0.745, 0.715);
}
@property --easeOutSine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.39, 0.575, 0.565, 1);
}
@property --easeInOutSine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.445, 0.05, 0.55, 0.95);
}
@property --easeInQuad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.55, 0.085, 0.68, 0.53);
}
@property --easeOutQuad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@property --easeInOutQuad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.455, 0.03, 0.515, 0.955);
}
@property --easeInCubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
@property --easeOutCubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.215, 0.61, 0.355, 1);
}
@property --easeInOutCubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.645, 0.045, 0.355, 1);
}
@property --easeInQuart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.895, 0.03, 0.685, 0.22);
}
@property --easeOutQuart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.165, 0.84, 0.44, 1);
}
@property --easeInOutQuart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.77, 0, 0.175, 1);
}
@property --easeInQuint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.755, 0.05, 0.855, 0.06);
}
@property --easeOutQuint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.23, 1, 0.32, 1);
}
@property --easeInOutQuint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.86, 0, 0.07, 1);
}
@property --easeInExpo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.95, 0.05, 0.795, 0.035);
}
@property --easeOutExpo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.19, 1, 0.22, 1);
}
@property --easeInOutExpo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(1, 0, 0, 1);
}
@property --easeInCirc {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.6, 0.04, 0.98, 0.335);
}
@property --easeOutCirc {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.075, 0.82, 0.165, 1);
}
@property --easeInOutCirc {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
@property --easeInBack {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.6, -0.28, 0.735, 0.045);
}
@property --easeOutBack {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@property --easeInOutBack {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@property --transitionAppearance {
  syntax: "*";
  inherits: false;
  initial-value: 0.3s ease-out;
}
@property --transitionBoundsTiming {
  syntax: "*";
  inherits: false;
  initial-value: linear(0, 0.009, 0.035 2.1%, 0.141, 0.281 6.7%, 0.723 12.9%, 0.938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, 0.991, 0.977 51%, 0.974 53.8%, 0.975 57.1%, 0.997 69.8%, 1.003 76.9%, 1.004 83.8%, 1);
}
:root {
  --transitionBase: 1s var(--easeOutExpo);
  --transitionBounds: 1s var(--transitionBoundsTiming);
}

/*--------------------------------------------
SETTINGS
---------------------------------------------*/
@media screen and (width <= 768px) {
  :root {
    --fz: * 100vw / var(--breakPoint);
  }
  :root.fz-s {
    --fz: * 100vw / var(--breakPoint) - ( 2 * 100vw / var(--breakPoint) );
  }
  :root.fz-m {
    --fz: * 100vw / var(--breakPoint);
  }
  :root.fz-l {
    --fz: * 100vw / var(--breakPoint) + ( 2 * 100vw / var(--breakPoint) );
  }
}
@media screen and (768px < width < 1040px) {
  :root {
    --fz: * 100vw / var(--breakPoint);
  }
  :root.fz-s {
    --fz: * 100vw / var(--breakPoint) - ( 2 * 100vw / var(--breakPoint) );
  }
  :root.fz-m {
    --fz: * 100vw / var(--breakPoint);
  }
  :root.fz-l {
    --fz: * 100vw / var(--breakPoint) + ( 2 * 100vw / var(--breakPoint) );
  }
}
@media print, screen and (width >= 1040px) {
  :root {
    --fz: * 1px;
  }
  :root.fz-s {
    --fz: * 1px - 2px;
  }
  :root.fz-m {
    --fz: * 1px;
  }
  :root.fz-l {
    --fz: * 1px + 2px;
  }
}
:root {
  font-size: 16px;
}
@media screen and (width <= 768px) {
  :root {
    --headerHeight: calc( 56 var(--vwBase) );
  }
}
@media print, screen and (width > 768px) {
  :root {
    --headerHeight: calc( 66 var(--vwBase) );
  }
}

/*--------------------------------------------
HTML
---------------------------------------------*/
html {
  scroll-padding-top: var(--headerHeight);
}

/*--------------------------------------------
BODY
---------------------------------------------*/
body {
  padding-top: var(--headerHeight);
}
@media screen and (width <= 768px) {
  body:has(.float-box01.is-fixed) {
    padding-bottom: calc((16 var(--fz)) * 19 / 16 + (41 var(--vwBase)));
  }
}
@media print, screen and (width > 768px) {
  body:has(.float-box01.is-fixed) {
    padding-bottom: calc((16 var(--fz)) * 19 / 16 + (84 var(--vwBase)));
  }
}

/*--------------------------------------------
CONTAINER
---------------------------------------------*/
@media screen and (width <= 768px) {
  .container {
    width: 100%;
    padding-inline: calc(var(--gutter) var(--viewportBase));
  }
}
@media print, screen and (width > 768px) {
  .container {
    width: min(100%, var(--breakPoint) * 1px);
    margin-inline: auto;
    padding-inline: min(var(--gutter) * 1px, (var(--gutter) var(--viewportBase)));
  }
}

@media screen and (width <= 768px) {
  .container-sp {
    width: 100%;
    padding-inline: calc(var(--gutter) var(--viewportBase));
  }
}

@media print, screen and (width > 768px) {
  .container-pc {
    width: min(100%, var(--breakPoint) * 1px);
    margin-inline: auto;
    padding-inline: min(var(--gutter) * 1px, (var(--gutter) var(--viewportBase)));
  }
}

/*--------------------------------------------
GRID CONTAINER
---------------------------------------------*/
.gridContainer {
  display: grid;
  grid-auto-flow: column;
  row-gap: 0;
}
.gridContainer > * {
  grid-column: 2;
}
@media screen and (width <= 768px) {
  .gridContainer {
    grid-template-columns: calc(var(--gutter) var(--viewportBase)) calc(var(--wrapperSize) var(--viewportBase)) calc(var(--gutter) var(--viewportBase));
  }
}
@media print, screen and (width > 768px) {
  .gridContainer {
    grid-template-columns: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2) min((var(--wrapperSize) var(--viewportBase)), var(--wrapperSize) * 1px) max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
}

@media screen and (width <= 768px) {
  .gridContainer-sp {
    display: grid;
    grid-auto-flow: column;
    row-gap: 0;
    grid-template-columns: calc(var(--gutter) var(--viewportBase)) calc(var(--wrapperSize) var(--viewportBase)) calc(var(--gutter) var(--viewportBase));
  }
  .gridContainer-sp > *:not(.fluid-sp, .right-end-sp) {
    grid-column: 2;
  }
  .gridContainer-sp .fluid-sp {
    grid-column: 1/-1;
  }
  .gridContainer-sp .right-end-sp {
    grid-column: 2/-1;
  }
}

@media print, screen and (width >= 1040px) {
  .gridContainer-pc {
    display: grid;
    grid-auto-flow: column;
    row-gap: 0;
    grid-template-columns: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2) min((var(--wrapperSize) var(--viewportBase)), var(--wrapperSize) * 1px) max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
  .gridContainer-pc > *:not(.fluid-pc, .right-end-pc) {
    grid-column: 2;
  }
  .gridContainer-pc .fluid-pc {
    grid-column: 1/-1;
  }
  .gridContainer-pc .right-end-pc {
    grid-column: 2/-1;
  }
}

/*--------------------------------------------
WRAPPER
---------------------------------------------*/
@media screen and (width <= 768px) {
  .wrap {
    width: 100%;
    padding-inline: calc(var(--gutter) var(--viewportBase));
  }
}
@media print, screen and (width > 768px) {
  .wrap {
    padding-inline: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
}

@media screen and (width <= 768px) {
  .wrap-sp {
    width: 100%;
    padding-inline: calc(var(--gutter) var(--viewportBase));
  }
}

@media print, screen and (width > 768px) {
  .wrap-pc {
    padding-inline: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
}

@media screen and (width <= 768px) {
  .wrap-left {
    width: 100%;
    padding-left: calc(var(--gutter) var(--viewportBase));
  }
  .wrap-left .wrap-right, .wrap-left .wrap-right-sp {
    padding-right: calc(var(--gutter) * 100% / (var(--breakPoint) - var(--gutter)));
  }
}
@media print, screen and (width > 768px) {
  .wrap-left {
    padding-left: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
  .wrap-left.wrap-right-pc {
    padding-right: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
  .wrap-left .wrap-right, .wrap-left .wrap-right-pc {
    padding-right: max((var(--gutter) var(--viewportBase)), 100% - var(--wrapperSize) * 1px);
  }
}

@media screen and (width <= 768px) {
  .wrap-left-sp {
    width: 100%;
    padding-left: calc(var(--gutter) var(--viewportBase));
  }
  .wrap-left-sp .wrap-right, .wrap-left-sp .wrap-right-sp {
    padding-right: calc(var(--gutter) * 100% / (var(--breakPoint) - var(--gutter)));
  }
}

@media screen and (width <= 768px) {
  .wrap-right {
    width: 100%;
    padding-right: calc(var(--gutter) var(--viewportBase));
  }
  .wrap-right .wrap-left, .wrap-right .wrap-left-sp {
    padding-left: calc(var(--gutter) * 100% / (var(--breakPoint) - var(--gutter)));
  }
}
@media print, screen and (width > 768px) {
  .wrap-right {
    padding-right: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
  .wrap-right.wrap-left-pc {
    padding-left: max((var(--gutter) var(--viewportBase)), (100% - var(--wrapperSize) * 1px) / 2);
  }
  .wrap-right .wrap-left, .wrap-right .wrap-left-pc {
    padding-left: max((var(--gutter) var(--viewportBase)), 100% - var(--wrapperSize) * 1px);
  }
}

@media screen and (width <= 768px) {
  .wrap-right-sp {
    width: 100%;
    padding-right: calc(var(--gutter) var(--viewportBase));
  }
  .wrap-right-sp .wrap-left, .wrap-right-sp .wrap-left-sp {
    padding-left: calc(var(--gutter) * 100% / (var(--breakPoint) - var(--gutter)));
  }
}

@media screen and (width <= 768px) {
  .wrap02 {
    width: 100%;
    padding-inline: calc(var(--gutter) var(--viewportBase));
  }
}
@media print, screen and (width > 768px) {
  .wrap02 {
    padding-inline: max((140 var(--viewportBase)), (100% - 1160px) / 2);
  }
}

/*--------------------------------------------
STATE
---------------------------------------------*/
@media print, screen and (width > 768px) {
  .is-sp {
    display: none;
  }
}

@media screen and (width <= 768px) {
  .is-pc {
    display: none;
  }
}

@media screen and (width <= 768px) {
  .is-tb {
    display: none;
  }
}
@media print, screen and (width >= 1040px) {
  .is-tb {
    display: none;
  }
}

/*--------------------------------------------
ACCESSIBILITY
---------------------------------------------*/
.visuallyhidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

/*--------------------------------------------
COMMON MODULES
---------------------------------------------*/
.full {
  width: 100%;
  height: auto;
}

[data-before]:before {
  content: attr(data-before);
  white-space: pre;
}

[data-after]:after {
  content: attr(data-after);
  white-space: pre;
}

@media screen and (width <= 768px) {
  [data-before-sp]:before {
    content: attr(data-before-sp);
    white-space: pre;
  }
}

[data-both]:before, [data-both]:after {
  content: attr(data-both);
  white-space: pre;
}

@media screen and (width <= 768px) {
  [data-after-sp]:after {
    content: attr(data-after-sp);
    white-space: pre;
  }
  [data-both-sp]:before, [data-both-sp]:after {
    content: attr(data-both);
    white-space: pre;
  }
}
@media print, screen and (width > 768px) {
  [data-before-pc]:before {
    content: attr(data-before-pc);
    white-space: pre;
  }
  [data-after-pc]:after {
    content: attr(data-after-pc);
    white-space: pre;
  }
  [data-both-pb]:before, [data-both-pb]:after {
    content: attr(data-both);
    white-space: pre;
  }
}
/*--------------------------------------------
BR TO SPCE
---------------------------------------------*/
@media screen and (width <= 768px) {
  br.sp-space {
    content: "";
  }
  br.sp-space:after {
    content: " ";
  }
}

@media print, screen and (width > 768px) {
  br.pc-space {
    content: "";
  }
  br.pc-space:after {
    content: " ";
  }
}

@media screen and (width <= 768px) {
  br.sp-spaceEm {
    content: "";
  }
  br.sp-spaceEm:after {
    content: "　";
  }
}

@media print, screen and (width > 768px) {
  br.pc-spaceEm {
    content: "";
  }
  br.pc-spaceEm:after {
    content: "　";
  }
}

/*--------------------------------------------
LH NAGATIVE MARGIN
---------------------------------------------*/
.lh-up {
  margin-top: calc((1em - 1lh) / 2);
}

@media screen and (width <= 768px) {
  .lh-up-sp {
    margin-top: calc((1em - 1lh) / 2);
  }
}

@media print, screen and (width > 768px) {
  .lh-up-pc {
    margin-top: calc((1em - 1lh) / 2);
  }
}

/*--------------------------------------------
HEADER
---------------------------------------------*/
.header {
  height: var(--headerHeight);
  display: grid;
  align-items: center;
  position: fixed;
  background-color: white;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  border-bottom: solid 1px var(--primary);
}
.header__logo {
  display: grid;
  align-items: center;
  justify-content: start;
  grid-template-columns: auto auto;
  color: var(--primary);
  grid-row: 1;
  grid-column: 2;
  font-size: calc(18 var(--fz));
  column-gap: calc(5 var(--vwBase));
}
.header__logo:before {
  content: "";
  display: block;
  width: auto;
  aspect-ratio: 619/511;
  font-size: 0;
  background: url("../images/ui/icon/note.svg") 0 0/contain no-repeat;
  filter: var(--filterPrimary);
}
@media screen and (width <= 768px) {
  .header {
    grid-template-columns: calc(12 var(--viewportBase)) auto 1fr;
  }
  .header__logo {
    font-weight: 700;
    line-height: 1.2222222222;
  }
  .header__logo:before {
    height: calc(19.85 var(--vwBase));
  }
}
@media print, screen and (width > 768px) {
  .header {
    grid-template-columns: calc(5 var(--percentBase)) auto 1fr auto calc(19 var(--percentBase)) calc(59 var(--percentBase)) calc(5 var(--percentBase));
  }
  .header__logo {
    font-weight: 700;
    line-height: 1.5;
  }
  .header__logo:before {
    height: calc(20 var(--vwBase));
  }
}

@media print, screen and (width > 768px) {
  .header__font-size-controller {
    grid-row: 1;
    grid-column: 4;
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: start;
    column-gap: calc(10 var(--vwBase));
  }
  .header__font-size-controller__title {
    font-size: calc(16 var(--fz));
    line-height: 1.5;
  }
  .header__font-size-controller__list {
    display: grid;
    align-items: center;
    justify-content: start;
    grid-template-columns: repeat(3, calc(34 var(--vwBase)));
    grid-template-rows: calc(30 var(--vwBase));
    column-gap: calc(12 var(--vwBase));
  }
  .header__font-size-controller__list li {
    height: 100%;
    width: 100%;
  }
  .header__font-size-controller__list button {
    width: 100%;
    height: 100%;
    display: grid;
    align-items: center;
    justify-content: center;
    border-radius: calc(4 var(--vwBase));
    outline: solid 1px currentColor;
    outline-offset: -1px;
    font-size: calc(16 var(--fz));
  }
  .header__font-size-controller__list button[aria-checked=true] {
    background-color: var(--primary);
    color: white;
  }
  .header__font-size-controller__list button[aria-checked=false] {
    color: var(--primary);
    background-color: white;
  }
}

@media (hover: hover) {
  .header__font-size-controller button:hover {
    background-color: var(--primary);
    color: white;
    font-weight: 700;
  }
}
.header__menu-button {
  height: var(--headerHeight);
  background-color: transparent;
  top: 0;
  z-index: 12;
  position: fixed;
  overflow: hidden;
  display: grid;
  align-items: center;
  justify-content: center;
  align-content: center;
  row-gap: calc(4 var(--vwBase));
  grid-template-rows: calc(16 var(--vwBase)) auto;
  grid-template-columns: 1fr calc(24 var(--vwBase)) 1fr;
}
.header__menu-button > span:nth-of-type(1) {
  position: relative;
  display: block;
  font-size: 0;
  height: 100%;
  grid-row: 1;
  grid-column: 2;
  height: calc(16 var(--vwBase));
  font-size: 0;
  line-height: 1;
}
.header__menu-button > span:nth-of-type(1):before {
  content: "";
  position: absolute;
  aspect-ratio: 1;
  width: auto;
  height: calc(40 var(--vwBase));
  outline: solid 1px #ccc;
  outline-offset: -1px;
  border-radius: calc(4 var(--vwBase));
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  pointer-events: none;
  opacity: 0;
}
.header__menu-button > span:nth-of-type(1) > span {
  height: calc(3 var(--vwBase));
  display: block;
  position: absolute;
  background-color: var(--primary);
  left: 0;
  width: 100%;
  font-size: 0;
  line-height: 1;
}
.header__menu-button > span:nth-of-type(1) > span:nth-of-type(1) {
  top: 0;
}
.header__menu-button > span:nth-of-type(1) > span:nth-of-type(4) {
  bottom: 0;
}
.header__menu-button > span:nth-of-type(1) > span:nth-of-type(2), .header__menu-button > span:nth-of-type(1) > span:nth-of-type(3) {
  top: calc(6.5 var(--vwBase));
}
.header__menu-button > span:nth-of-type(2) {
  color: var(--primary);
  font-weight: 700;
  grid-row: 2;
  grid-column: 1/-1;
  text-align: center;
  font-size: calc(10 var(--fz));
  line-height: 1.2;
}
.header__menu-button[aria-expanded=false] > span:nth-of-type(2) {
  opacity: 1;
}
.header__menu-button[aria-expanded=true] > span:nth-of-type(1):before {
  opacity: 1;
}
.header__menu-button[aria-expanded=true] > span:nth-of-type(1) span:nth-of-type(1) {
  scale: 0;
  translate: 0 0;
}
.header__menu-button[aria-expanded=true] > span:nth-of-type(1) span:nth-of-type(2) {
  rotate: -45deg;
}
.header__menu-button[aria-expanded=true] > span:nth-of-type(1) span:nth-of-type(3) {
  rotate: 45deg;
}
.header__menu-button[aria-expanded=true] > span:nth-of-type(1) span:nth-of-type(4) {
  scale: 0;
  translate: 0 0;
}
.header__menu-button[aria-expanded=true] > span:nth-of-type(2) {
  opacity: 0;
}
@media screen and (width <= 768px) {
  .header__menu-button {
    width: calc(59 var(--viewportBase));
    right: calc(4 var(--viewportBase));
  }
}
@media print, screen and (width > 768px) {
  .header__menu-button {
    width: min(59px, (59 var(--viewportBase)));
    left: min(50% + 436px, (936 var(--viewportBase)));
  }
}

body:before {
  content: "";
  width: 100%;
  height: 1000%;
  position: fixed;
  top: 0;
  left: 0;
  background-color: color-mix(in srgb, black 50%, transparent);
  z-index: 5;
}
body:has(.header__nav[inert]):before {
  opacity: 0;
  pointer-events: none;
}
body:has(.header__nav:not([inert])) {
  overflow: hidden;
}
body:has(.header__nav:not([inert])):before {
  opacity: 1;
}

.header__nav {
  position: fixed;
  translate: 0 0;
  z-index: 11;
  overflow-y: auto;
  left: 100%;
  height: 100dvh;
  background-color: white;
  top: 0;
}
.header__nav:not([inert]) {
  translate: -100% 0;
}
.header__nav[inert] {
  translate: 0 0;
}
.header__nav .header__nav__scroll {
  overflow-y: auto;
}
@media screen and (width <= 768px) {
  .header__nav {
    width: calc(350 var(--viewportBase));
  }
  .header__nav__scroll {
    padding-inline: 5%;
    padding-top: calc(21 var(--vwBase));
    padding-bottom: calc(49 var(--vwBase));
  }
}
@media print, screen and (width > 768px) {
  .header__nav {
    width: min(50% - 520px + 630px + 20px + 20px, (670 var(--viewportBase)));
  }
  .header__nav__scroll {
    width: min(630px, 94.0298507463%);
    margin-left: min(20px, 2.9850746269%);
    padding-top: calc(34 var(--vwBase));
    padding-bottom: calc(17 var(--vwBase));
  }
}

.header__nav__font-size-controller__title {
  font-size: calc(16 var(--fz));
  line-height: 1.1875;
  text-align: center;
  font-weight: 700;
}
.header__nav__font-size-controller__list {
  display: grid;
  align-items: start;
  justify-content: space-between;
  margin-top: calc(14 var(--vwBase));
  grid-template-columns: repeat(3, 27.7777777778%);
  min-height: calc(40 var(--vwBase));
}
.header__nav__font-size-controller button {
  outline: solid 1px var(--primary);
  outline-offset: -1px;
  width: 100%;
  position: relative;
  height: 100%;
  border-radius: calc(4 var(--vwBase));
  font-size: calc(16 var(--fz));
}
.header__nav__font-size-controller button:before {
  content: "";
  display: block;
  font-size: 0;
  width: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--primary);
  position: absolute;
  left: 50%;
  translate: -50%;
  top: calc(44 var(--vwBase));
  height: calc(8 var(--vwBase));
}
.header__nav__font-size-controller button[aria-checked=false] {
  color: var(--primary);
  height: calc(40 var(--vwBase));
}
.header__nav__font-size-controller button[aria-checked=false]:before {
  opacity: 0;
}
.header__nav__font-size-controller button[aria-checked=true] {
  color: white;
  background-color: var(--primary);
  height: calc(35 var(--vwBase));
}
.header__nav__font-size-controller button[aria-checked=true]:before {
  opacity: 1;
}
@media screen and (width <= 768px) {
  .header__nav__font-size-controller__title {
    width: 45.7142857143%;
  }
  .header__nav__font-size-controller__list {
    width: 45.7142857143%;
  }
}
@media print, screen and (width > 768px) {
  .header__nav__font-size-controller__title {
    width: 22.8571428571%;
  }
  .header__nav__font-size-controller__list {
    width: 22.8571428571%;
  }
}

@media (hover: hover) {
  .header__nav__font-size-controller button:hover {
    background-color: var(--primary);
    color: white;
  }
}
@media print and (hover: hover), screen and (hover: hover) and (width > 768px) {
  .header__nav__font-size-controller button:hover {
    height: calc(35 var(--vwBase));
  }
}
.header__nav__scroll__global-nav > li > a {
  display: grid;
  outline: solid 1px #efefef;
  outline-offset: -1px;
  grid-template-columns: auto auto;
  justify-content: start;
  align-items: start;
  font-size: calc(16 var(--fz));
  line-height: 1.1875;
  padding-block: calc(11 var(--vwBase));
}
.header__nav__scroll__global-nav > li > a:after {
  content: "";
  display: block;
  font-size: 0;
  width: auto;
  aspect-ratio: 11/16;
  background: url("../images/ui/arrow/right01.svg") left center/contain no-repeat;
  filter: var(--filterPrimary);
  height: calc(16 var(--vwBase));
  align-self: center;
}
.header__nav__scroll__global-nav li li a {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: start;
  align-items: start;
  font-size: calc(15 var(--fz));
  line-height: 1.2666666667;
  padding-block: calc(5 var(--vwBase));
  column-gap: calc(13 var(--vwBase));
}
.header__nav__scroll__global-nav li li a:before {
  content: "";
  display: block;
  font-size: 0;
  width: auto;
  aspect-ratio: 1;
  background-color: var(--primary);
  align-self: center;
  height: calc(10 var(--vwBase));
}
@media screen and (width <= 768px) {
  .header__nav__scroll__global-nav {
    margin-top: calc(25 var(--vwBase));
  }
  .header__nav__scroll__global-nav > li > a {
    padding-inline: 3.1746031746%;
    column-gap: 9.4915254237%;
  }
  .header__nav__scroll__global-nav ul {
    padding-left: 4.7619047619%;
  }
  .header__nav__scroll__global-nav li li a {
    padding-inline: 3.3333333333%;
  }
}
@media print, screen and (width > 768px) {
  .header__nav__scroll__global-nav {
    margin-top: calc(37 var(--vwBase));
  }
  .header__nav__scroll__global-nav > li > a {
    padding-inline: 1.5873015873%;
    column-gap: 4.5901639344%;
  }
  .header__nav__scroll__global-nav ul {
    padding-left: 7.4603174603%;
  }
  .header__nav__scroll__global-nav li li a {
    padding-inline: 1.5873015873%;
  }
}

/*# sourceMappingURL=first.css.map */
