:root {
	--color-base-background: #fff;
	--color-sub-background: #f3f4ef;
	--color-main-background: #009944;
	--color-main-background-text: #fff;
	--color-ink: #17212b;
  --color-muted: #64717d;
  --color-brand: #009944;
  --color-accent: #edb033;
	--color-mist: var(--color-sub-background);
  --color-line: #dce3e8;
	--color-white: var(--color-base-background);
	--header-cta-background: #009944;
	--header-cta-text: #fff;
	--header-cta-radius: 6px;
  --header-height: 84px;
  --container: 760px;
  --container-wide: 1280px;
  --radius: 6px;
  --shadow: 0 12px 40px rgba(23, 33, 43, .12);
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif;
  --font-heading: var(--font-body);
  --font-size-base: 16px;
  --shortcode-button-background: #009944;
  --shortcode-button-text: #fff;
  --shortcode-button-border: #009944;
  --shortcode-button-hover-background: #007a36;
  --shortcode-button-hover-text: #fff;
  --shortcode-button-radius: 6px;
  --shortcode-button-height: 52px;
  --shortcode-button-padding: 26px;
  --shortcode-button-font-size: 16px;
  --footer-background: #009944;
  --footer-text: #fff;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-ink); background: var(--color-white); font-family: var(--font-body); font-size: var(--font-size-base); line-height: 1.8; -webkit-font-smoothing: antialiased; }
body.has-open-drawer { overflow: hidden; }
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, textarea, select { font: inherit; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); line-height: 1.35; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.container--wide { width: min(calc(100% - 48px), var(--container-wide)); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link:focus { top: 10px; left: 10px; width: auto; height: auto; clip: auto; padding: 10px 14px; background: #fff; z-index: 10000; }
[hidden] { display: none !important; }

.site-header { position: sticky; top: 0; z-index: 1000; height: var(--header-height); background: var(--color-base-background); border-bottom: 1px solid var(--color-line); transition: background .25s, box-shadow .25s, color .25s, opacity .3s ease; }
.has-framed-hero .site-header { position: fixed; width: 100%; border-bottom: 0; box-shadow: none; opacity: 0; pointer-events: none; }
.has-framed-hero.is-hero-ready .site-header { opacity: 1; pointer-events: auto; transition-delay: 0s; }
.has-framed-hero.is-hero-settled .site-header { z-index: 1300; }
.has-overlay-header .site-header { position: fixed; width: 100%; color: #fff; background: transparent; border-color: transparent; }
.has-overlay-header .site-header.is-scrolled { color: var(--color-ink); background: var(--color-base-background); box-shadow: 0 8px 24px rgba(23,33,43,.08); }
.site-header__inner { width: calc(100% - 80px); max-width: none; height: 100%; display: flex; align-items: center; gap: 28px; }
.site-branding { display: inline-flex; align-items: center; width: min(var(--logo-width-pc), 32vw); max-height: 72px; text-decoration: none; }
.site-branding__logo { display: block; width: 100%; }
.site-logo-picture { display: block; width: 100%; }
.site-branding img { width: 100%; max-height: 68px; object-fit: contain; object-position: left center; }
.site-branding__text { font-weight: 700; font-size: 1.25rem; }
.site-branding__logo--light { display: none; }
.has-overlay-header .site-header:not(.is-scrolled) .site-branding__logo--dark { display: none; }
.has-overlay-header .site-header:not(.is-scrolled) .site-branding__logo--light { display: block; }
.site-header__actions { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.site-header__utility { display: none; align-items: center; gap: 28px; margin-left: auto; }
.primary-navigation { margin-left: 0; }
.primary-menu, .footer-menu, .drawer-menu { list-style: none; margin: 0; padding: 0; }
.primary-menu { display: flex; align-items: center; gap: clamp(18px, 2vw, 36px); }
.primary-menu a { text-decoration: none; font-weight: 600; font-size: .94rem; }
.site-header__label { margin: 0; font-size: .9rem; font-weight: 400; letter-spacing: .02em; }
.uses-framed-header .site-header__actions { display: none; }
.uses-framed-header .site-header__utility { display: flex; }
.header-cta, .button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 50px; padding: 0 24px; border: 0; border-radius: var(--radius); background: var(--color-brand); color: #fff; font-weight: 700; text-decoration: none; transition: opacity .2s, transform .2s; }
.header-cta { border-radius: var(--header-cta-radius); background: var(--header-cta-background); color: var(--header-cta-text); }
.button:hover, .header-cta:hover { opacity: .88; transform: translateY(-1px); }
.tabeo-button { display: flex; width: fit-content; min-height: var(--shortcode-button-height); margin-top: clamp(38px, 5vw, 64px); padding-inline: var(--shortcode-button-padding); border: 1px solid var(--shortcode-button-border); border-radius: var(--shortcode-button-radius); background: var(--shortcode-button-background); color: var(--shortcode-button-text); font-size: var(--shortcode-button-font-size); }
.tabeo-button--align-left { margin-right: auto; margin-left: 0; }
.tabeo-button--align-center { margin-right: auto; margin-left: auto; }
.tabeo-button--align-right { margin-right: 0; margin-left: auto; }
.tabeo-button:hover { border-color: var(--shortcode-button-hover-background); background: var(--shortcode-button-hover-background); color: var(--shortcode-button-hover-text); opacity: 1; }
.drawer-toggle { display: grid; grid-template-rows: 21px 13px; place-content: center; justify-items: center; gap: 9px; width: 76px; height: 84px; padding: 8px; border: 0; background: transparent; color: currentColor; cursor: pointer; }
.drawer-toggle__lines { display: grid; align-content: center; gap: 6px; width: 40px; height: 21px; margin: 0; }
.drawer-toggle__lines span { display: block; width: 100%; height: 3px; border-radius: 999px; background: currentColor; }
.drawer-toggle__label { display: block; width: 52px; margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .01em; line-height: 1.1; text-align: center; white-space: nowrap; }

.drawer { position: fixed; inset: 0; z-index: 1500; visibility: hidden; pointer-events: none; }
.drawer.is-open { visibility: visible; pointer-events: auto; }
.drawer__overlay { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(10,18,24,.58); opacity: 0; transition: opacity .25s; }
.drawer.is-open .drawer__overlay { opacity: 1; }
.drawer__panel { position: absolute; top: 0; right: 0; width: min(88vw, 420px); height: 100%; padding: 28px; background: var(--drawer-background, #f3f1ed); color: var(--drawer-text-color, #17212b); transform: translateX(100%); transition: transform .3s ease; overflow-y: auto; }
.drawer.is-open .drawer__panel { transform: translateX(0); }
.drawer__header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid rgba(23,33,43,.14); border-bottom-color: color-mix(in srgb, currentColor 16%, transparent); }
.drawer__title { font-weight: 700; }
.drawer__close { width: 48px; height: 48px; border: 0; background: transparent; color: currentColor; font-size: 2rem; cursor: pointer; }
.drawer-menu { margin-top: 24px; }
.drawer-menu a { display: block; padding: 15px 4px; border-bottom: 1px solid rgba(23,33,43,.14); border-bottom-color: color-mix(in srgb, currentColor 16%, transparent); text-decoration: none; font-weight: 600; }
.drawer__cta { width: 100%; margin-top: 28px; border-radius: var(--header-cta-radius); background: var(--drawer-button-background, #009944); color: var(--drawer-button-text-color, #fff); }

.hero-stage { position: relative; background: var(--color-base-background); }
.hero-stage--framed { padding: 0 0 0; transition: padding-top 1.45s cubic-bezier(.16, 1, .3, 1); }
.hero-stage--framed.is-ready { padding-top: calc(var(--header-height) + 16px); }
.hero-stage--framed .hero { width: 100%; min-height: 100svh; margin-left: 0; border-radius: 0; transition: width 1.45s cubic-bezier(.16, 1, .3, 1), margin-left 1.45s cubic-bezier(.16, 1, .3, 1), min-height 1.45s cubic-bezier(.16, 1, .3, 1), border-radius 1.45s cubic-bezier(.16, 1, .3, 1); }
.hero-stage--framed.is-ready .hero { width: calc(100% - var(--hero-gutter-left) - var(--hero-gutter-right)); min-height: var(--hero-height-pc, 78svh); margin-left: var(--hero-gutter-left); border-radius: var(--hero-radius, 16px); }
.hero-stage__side-copy { position: absolute; z-index: 3; top: calc(var(--header-height) + 16px + var(--hero-height-pc-half)); left: var(--hero-gutter-left-half); margin: 0; color: rgba(23,33,43,.86); font-size: clamp(.76rem, .9vw, .9rem); font-weight: 400; letter-spacing: .07em; line-height: 1.95; writing-mode: vertical-rl; opacity: 0; transform: translate(-50%, -50%); transition: opacity .45s ease .3s, color .35s ease, text-shadow .35s ease; pointer-events: none; }
.hero-stage.is-ready .hero-stage__side-copy { opacity: 1; }
.hero-stage--fullscreen .hero-stage__side-copy { display: none; }
.hero { position: relative; display: grid; align-items: end; min-height: 100vh; min-height: 100svh; overflow: hidden; border-radius: 0; background: var(--color-base-background); color: var(--hero-text-color, #fff); }
.hero__media, .hero__media-device, .hero__media-item, .hero__overlay { position: absolute; inset: 0; }
.hero__media { z-index: 0; isolation: isolate; }
.hero-stage--framed .hero__media { transform: scale(1.035); transition: transform 1.45s cubic-bezier(.16, 1, .3, 1); }
.hero-stage--framed.is-ready .hero__media { transform: scale(1); }
.hero__media-device { overflow: hidden; }
.hero__media-item { z-index: 0; visibility: hidden; opacity: 0; transition: opacity var(--hero-media-transition-duration, 1s) ease, transform var(--hero-media-transition-duration, 1s) cubic-bezier(.22, 1, .36, 1), visibility 0s linear var(--hero-media-transition-duration, 1s); }
.hero__media-device[data-transition="fade"] .hero__media-item.is-active { z-index: 2; visibility: visible; opacity: 1; transition-delay: 0s; }
.hero__media-device[data-transition="fade"] .hero__media-item.is-previous { z-index: 1; visibility: visible; opacity: 0; }
.hero__media-device[data-transition="slide"] .hero__media-item { visibility: visible; opacity: 1; transform: translateX(100%); transition-property: transform; transition-delay: 0s; }
.hero__media-device[data-transition="slide"] .hero__media-item.is-active { z-index: 2; transform: translateX(0); }
.hero__media-device[data-transition="slide"] .hero__media-item.is-previous { z-index: 1; transform: translateX(-100%); }
.hero__image, .hero__video, .hero__poster { width: 100%; height: 100%; object-fit: cover; }
.hero__video { position: absolute; inset: 0; opacity: 0; transition: opacity .2s ease; }
.hero__video.is-media-ready { opacity: 1; }
.hero__overlay { z-index: 1; background: var(--hero-overlay, #000); opacity: var(--hero-overlay-opacity, .35); pointer-events: none; }
.hero__mark { position: absolute; z-index: 2; top: 50%; left: 50%; width: min(30vw, 390px); transform: translate(-50%, -50%); pointer-events: none; }
.hero__mark img { width: 100%; max-height: 32svh; object-fit: contain; }
.hero__side-copy-sp { position: absolute; z-index: 3; top: 28px; left: 24px; margin: 0; color: inherit; font-size: .76rem; font-weight: 600; letter-spacing: .12em; line-height: 1.8; }
.hero__content { position: relative; z-index: 3; align-self: end; padding-top: calc(var(--header-height) + 80px); padding-bottom: clamp(42px, 6vh, 86px); }
.hero--framed .hero__content { padding-top: clamp(64px, 8vh, 110px); }
.hero__copy { width: min(100%, 900px); }
.hero__label { margin: 0 0 14px; font-size: var(--hero-label-size-pc, .82rem); font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.hero__title { margin: 0; font-size: calc(var(--hero-title-size-pc, 48) * 1px); letter-spacing: -.025em; line-height: 1.35; overflow-wrap: anywhere; word-break: keep-all; }
.hero__text { max-width: 690px; margin: 22px 0 0; font-size: var(--hero-text-size-pc, clamp(1rem, 1.4vw, 1.25rem)); }
.hero__button { margin-top: 32px; border: 1px solid var(--hero-button-background, #fff); background: var(--hero-button-background, #fff); color: var(--hero-button-text-color, var(--color-ink)); }
.hero__button:hover { border-color: var(--hero-button-background, #fff); background: var(--hero-button-background, #fff); color: var(--hero-button-text-color, var(--color-ink)); opacity: .86; }
.hero-pictos { position: absolute; z-index: 800; top: calc(var(--header-height) + 16px + var(--hero-height-pc-half)); right: 0; display: grid; align-content: center; width: var(--hero-gutter-right); transform: translateY(-50%); opacity: 0; transition: opacity .45s ease .3s; isolation: isolate; }
.hero-pictos::before { display: none; }
.hero-stage.is-ready .hero-pictos { opacity: 1; }
.hero-pictos__link { display: grid; justify-items: center; gap: 8px; padding: 16px 6px; color: rgba(23,33,43,.86); font-size: .76rem; font-weight: 400; line-height: 1.4; text-align: center; text-decoration: none; transition: color .25s ease, transform .2s ease; }
.hero-pictos__link:hover { color: var(--color-brand); transform: translateY(-2px); }
.hero-pictos__icon { width: 42px; height: 42px; object-fit: contain; opacity: .9; transition: opacity .25s ease, filter .35s ease; }
.hero-pictos__link:hover .hero-pictos__icon { opacity: 1; }
html[data-tabeo-side-contrast="on-dark"] .hero-stage__side-copy { color: rgba(255,255,255,.94); text-shadow: none; }
html[data-tabeo-side-contrast="on-dark"] .hero-pictos__link { color: rgba(255,255,255,.94); }
html[data-tabeo-side-contrast="on-dark"] .hero-pictos__icon { filter: brightness(0) invert(1); }
html[data-tabeo-side-contrast="on-light"] .hero-stage__side-copy { color: rgba(23,33,43,.86); text-shadow: none; }
html[data-tabeo-side-contrast="on-light"] .hero-pictos__link { color: rgba(23,33,43,.86); }
html[data-tabeo-side-contrast="on-light"] .hero-pictos__icon { filter: none; }

.hero-news { display: flex; align-items: center; width: calc(100% - var(--hero-gutter-left) - var(--hero-gutter-right)); min-height: 92px; margin-left: var(--hero-gutter-left); border-bottom: 1px solid var(--color-line); opacity: 0; transition: opacity .45s ease .85s; }
.hero-stage--fullscreen .hero-news { width: calc(100% - 80px); margin-inline: auto; }
.hero-stage.is-ready .hero-news { opacity: 1; }
.hero-news__list { display: grid; width: 100%; margin-inline: auto; }
.hero-news__item { grid-area: 1 / 1; display: grid; grid-template-columns: max-content fit-content(620px); align-items: center; justify-content: center; gap: 20px; visibility: hidden; opacity: 0; transform: translateY(8px); transition: opacity .45s ease, transform .45s ease, visibility 0s linear .45s; pointer-events: none; }
.hero-news__item.is-active { visibility: visible; opacity: 1; transform: translateY(0); transition-delay: 0s; pointer-events: auto; }
.hero-news__item time { color: var(--color-muted); font-size: .78rem; font-variant-numeric: tabular-nums; }
.hero-news__item a { overflow: hidden; font-size: .92rem; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.hero-news__item a:hover { text-decoration: underline; }
.hero-news__clock { display: grid; place-items: center; width: 14px; height: 14px; color: #a4acb3; }
.hero-news__clock svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }

.page-header { position: relative; display: grid; align-items: center; min-height: var(--page-header-height-pc, 360px); overflow: hidden; background: var(--page-header-background, var(--color-mist)); color: var(--page-header-text-color, var(--color-ink)); }
.page-header__media, .page-header__media img, .page-header__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.page-header__media img { object-fit: cover; }
.page-header__overlay { background: var(--page-header-overlay-color, #000); opacity: var(--page-header-overlay-opacity, .35); }
.page-header__inner { position: relative; z-index: 2; padding-block: clamp(52px, 7vw, 88px); }
.page-header--align-center .page-header__inner { text-align: center; }
.page-header--align-right .page-header__inner { text-align: right; }
.page-header__pictogram { width: var(--page-header-pictogram-size-pc, 48px); height: auto; max-height: var(--page-header-pictogram-size-pc, 48px); margin: 0 0 12px; object-fit: contain; }
.page-header--align-center .page-header__pictogram { margin-right: auto; margin-left: auto; }
.page-header--align-right .page-header__pictogram { margin-left: auto; }
.page-header__label { margin: 0 0 8px; color: var(--page-header-label-color, var(--page-header-text-color)); font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.page-header__title { max-width: 940px; margin: 0; color: var(--page-header-title-color, var(--page-header-text-color)); font-family: var(--font-heading); font-size: var(--page-header-title-size-pc, 36px); font-weight: 700; overflow-wrap: anywhere; }
.page-header__description { max-width: 760px; margin: 20px 0 0; color: var(--page-header-description-color, var(--page-header-text-color)); font-size: clamp(.94rem, 1.25vw, 1.08rem); line-height: 1.9; }
.page-header--align-center .page-header__title, .page-header--align-center .page-header__description { margin-right: auto; margin-left: auto; }
.page-header--align-right .page-header__title, .page-header--align-right .page-header__description { margin-left: auto; }

.tabeo-reveal {
  --tabeo-reveal-delay: 0ms;
  opacity: 0;
  transform: translate3d(0, 52px, 0);
  filter: blur(0);
  transition: opacity .82s ease var(--tabeo-reveal-delay), transform 1.2s cubic-bezier(.16,1,.3,1) var(--tabeo-reveal-delay), filter 1.05s ease var(--tabeo-reveal-delay), clip-path 1.25s cubic-bezier(.16,1,.3,1) var(--tabeo-reveal-delay);
  will-change: opacity, transform;
}
.tabeo-reveal--pictogram { transform: translate3d(0, 72px, 0) scale(.12) rotate(-38deg); filter: blur(8px); transition-timing-function: ease, cubic-bezier(.2,1.55,.4,1), ease, ease; }
.tabeo-reveal--label { transform: translate3d(-68px, 0, 0); }
.tabeo-reveal--title { transform: translate3d(0, 82px, 0) scale(.95); filter: blur(10px); }
.tabeo-reveal--text { transform: translate3d(0, 58px, 0); filter: blur(4px); }
.tabeo-reveal--button { transform: translate3d(0, 56px, 0) scale(.84); }
.tabeo-reveal--contact-media { opacity: .18; transform: scale(1.26) translate3d(0, 6%, 0); filter: blur(8px); transform-origin: center; }
.tabeo-reveal--footer-logo { transform: translate3d(0, 86px, 0) scale(.28) rotate(-12deg); filter: blur(10px); transition-duration: .9s, 1.35s, 1.05s, 1.25s; transition-timing-function: ease, cubic-bezier(.2,1.5,.35,1), ease, ease; }
.is-motion-visible .tabeo-reveal {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1) rotate(0);
  filter: blur(0);
}

@media (prefers-reduced-motion: no-preference) {
  html.tabeo-loader-pending .page-header--motion .page-header__media,
  html.tabeo-loader-pending .page-header--motion .page-header__overlay,
  html.tabeo-loader-pending .page-header--motion .page-header__pictogram,
  html.tabeo-loader-pending .page-header--motion .page-header__label,
  html.tabeo-loader-pending .page-header--motion .page-header__title,
  html.tabeo-loader-pending .page-header--motion .page-header__description {
    animation-play-state: paused;
  }
  .page-header--motion .page-header__media {
    animation: tabeo-page-header-media 1.15s cubic-bezier(.16,1,.3,1) both;
    will-change: opacity, transform;
  }
  .page-header--motion .page-header__overlay {
    animation: tabeo-page-header-overlay .8s ease both;
  }
  .page-header--motion .page-header__pictogram {
    animation: tabeo-page-header-pictogram .78s cubic-bezier(.2,1.45,.35,1) .02s both;
    will-change: opacity, transform, filter;
  }
  .page-header--motion .page-header__label {
    animation: tabeo-page-header-label .58s cubic-bezier(.16,1,.3,1) .16s both;
    will-change: opacity, transform;
  }
  .page-header--motion .page-header__title {
    animation: tabeo-page-header-title .72s cubic-bezier(.16,1,.3,1) .28s both;
    will-change: opacity, transform, clip-path, filter;
  }
  .page-header--motion .page-header__description {
    animation: tabeo-page-header-description .68s cubic-bezier(.16,1,.3,1) .42s both;
    will-change: opacity, transform, filter;
  }
}

@keyframes tabeo-page-header-media {
  0% { opacity: .18; transform: scale(1.24) translate3d(0, -4%, 0); filter: blur(7px); }
  100% { opacity: 1; transform: scale(1) translate3d(0, 0, 0); filter: blur(0); }
}
@keyframes tabeo-page-header-overlay {
  0% { opacity: 0; }
  100% { opacity: var(--page-header-overlay-opacity, .35); }
}
@keyframes tabeo-page-header-pictogram {
  0% { opacity: 0; transform: translate3d(0, 78px, 0) scale(.05) rotate(-42deg); filter: blur(9px); }
  70% { opacity: 1; transform: translate3d(0, -8px, 0) scale(1.16) rotate(4deg); filter: blur(0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotate(0); filter: blur(0); }
}
@keyframes tabeo-page-header-label {
  0% { opacity: 0; transform: translate3d(-86px, 0, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes tabeo-page-header-title {
  0% { opacity: 0; transform: translate3d(0, 88px, 0) scale(.94); clip-path: inset(0 0 100% 0); filter: blur(10px); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); clip-path: inset(0 0 0 0); filter: blur(0); }
}
@keyframes tabeo-page-header-description {
  0% { opacity: 0; transform: translate3d(0, 58px, 0); filter: blur(5px); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}

.breadcrumb { border-bottom: 1px solid var(--color-line); background: var(--color-base-background); }
.breadcrumb__list { display: flex; align-items: center; gap: 0; min-height: 58px; margin-top: 0; margin-bottom: 0; padding: 10px 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.breadcrumb__list::-webkit-scrollbar { display: none; }
.breadcrumb__item { display: inline-flex; align-items: center; flex: 0 0 auto; color: var(--color-muted); font-size: .76rem; white-space: nowrap; }
.breadcrumb__item + .breadcrumb__item::before { margin: 0 12px; color: color-mix(in srgb, var(--color-muted) 50%, transparent); content: "/"; }
.breadcrumb__item a { color: var(--color-ink); text-decoration: none; transition: color .2s; }
.breadcrumb__item a:hover { color: var(--color-brand); }
.breadcrumb__item.is-current { max-width: min(52vw, 560px); overflow: hidden; text-overflow: ellipsis; }

.site-main { min-height: 40vh; }
.page-main, .single-main { padding-block: clamp(64px, 8vw, 120px); }
.content-width--normal { width: min(calc(100% - 40px), 760px); margin-inline: auto; }
.content-width--wide { width: min(calc(100% - 48px), 1280px); margin-inline: auto; }
.content-width--full { width: 100%; }
.front-page-main > .entry { width: 100%; }
/*
 * Classic Editor content defaults intentionally use zero-specificity selectors.
 * Page-specific CSS loaded after this file can override them with a single class.
 */
:where(.entry-content) > :first-child { margin-top: 0; }
:where(.entry-content) > :last-child { margin-bottom: 0; }
:where(.entry-content) :where(h2) { margin-top: 2.6em; margin-bottom: .8em; font-size: clamp(1.7rem, 3vw, 2.5rem); }
:where(.entry-content) :where(h3) { margin-top: 2em; font-size: clamp(1.3rem, 2vw, 1.7rem); }
:where(.entry-content) :where(p) { margin: 0 0 1.4em; }
:where(.entry-content) :where(table) { width: 100%; border-collapse: collapse; }
:where(.entry-content) :where(th, td) { padding: 14px 16px; border: 1px solid var(--color-line); text-align: left; vertical-align: top; }
:where(.entry-content) :where(th) { background: var(--color-mist); }
:where(.entry-content) :where(img) { height: auto; }
:where(.entry-content .aligncenter) { display: block; float: none; margin: .5em auto 1.5em; }
:where(.entry-content .alignleft) { float: left; margin: .35em 1.5em 1em 0; }
:where(.entry-content .alignright) { float: right; margin: .35em 0 1em 1.5em; }
.wp-caption { max-width: 100%; }
:where(.entry-content)::after { display: block; clear: both; content: ""; }
.entry-header { margin-bottom: 38px; }
.entry-title { margin: 0; font-size: clamp(2rem, 4vw, 3.4rem); }
.entry--single .entry-title { font-size: var(--news-single-title-size-pc, clamp(1.8rem, 3.25vw, 2.75rem)); line-height: 1.48; }
.entry-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 18px; color: var(--color-muted); }
.entry-category { display: inline-flex; align-items: center; min-height: 34px; padding: 5px 16px; border: 1px solid currentColor; border-radius: 4px; color: var(--color-brand); font-size: .74rem; font-weight: 700; letter-spacing: .06em; line-height: 1.2; text-decoration: none; }
.entry-date-wrap { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; font-variant-numeric: tabular-nums; }
.entry-clock { display: grid; place-items: center; width: 15px; height: 15px; }
.entry-clock svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.entry-thumbnail { margin-bottom: 42px; overflow: hidden; border-radius: min(var(--top-component-radius, 0px), 18px); }
.entry-thumbnail img { display: block; width: 100%; }
.entry--single .entry-content { font-size: 1rem; line-height: 2; }

.news-single-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(270px, 3fr); align-items: start; gap: clamp(42px, 5vw, 72px); }
.news-single-content { min-width: 0; }
.news-sidebar { min-width: 0; }
.news-sidebar__inner { position: sticky; top: calc(var(--header-height) + 32px); display: grid; gap: 30px; }
.news-sidebar__widget { min-width: 0; padding: 28px; border: 1px solid var(--color-line); border-radius: min(var(--top-component-radius, 0px), 14px); background: var(--color-base-background); }
.news-sidebar__title { margin: 0 0 20px; padding-bottom: 13px; border-bottom: 2px solid var(--color-brand); font-size: 1.08rem; line-height: 1.5; }
.news-sidebar__category-list, .news-sidebar__latest-list { list-style: none; margin: 0; padding: 0; }
.news-sidebar__category-list li + li, .news-sidebar__latest-list li + li { border-top: 1px solid var(--color-line); }
.news-sidebar__category-list a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 2px; text-decoration: none; transition: color .2s; }
.news-sidebar__category-list a:hover { color: var(--color-brand); }
.news-sidebar__count { display: grid; flex: 0 0 auto; place-items: center; min-width: 30px; min-height: 30px; padding-inline: 7px; border-radius: 999px; background: var(--color-sub-background); color: var(--color-muted); font-size: .72rem; }
.news-sidebar__latest-list a { display: grid; gap: 4px; padding: 14px 2px; text-decoration: none; }
.news-sidebar__latest-list time { color: var(--color-muted); font-size: .72rem; font-variant-numeric: tabular-nums; }
.news-sidebar__latest-list span { font-size: .9rem; font-weight: 600; line-height: 1.65; transition: color .2s; }
.news-sidebar__latest-list a:hover span { color: var(--color-brand); }
.news-sidebar__widget--cta-image { padding: 0; border: 0; overflow: hidden; }
.news-sidebar__widget--cta-image a { display: block; }
.news-sidebar__widget--cta-image img { display: block; width: 100%; height: auto; }
.is-hidden-desktop { display: none !important; }
.news-single-layout:has(> .news-sidebar.is-hidden-desktop) { grid-template-columns: minmax(0, 1fr); }
.news-sidebar__social-links { display: flex; flex-wrap: wrap; gap: 10px; }
.news-sidebar__social-links a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--color-line); border-radius: 50%; color: var(--color-ink); text-decoration: none; transition: border-color .2s, background .2s, color .2s; }
.news-sidebar__social-links a:hover { border-color: var(--color-brand); background: var(--color-brand); color: #fff; }
.news-sidebar__social-links svg { display: block; width: 19px; height: 19px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.news-sidebar__social-links .social-icon__fill { fill: currentColor; stroke: none; }

.page-contact { position: relative; display: grid; align-items: center; min-height: 500px; overflow: hidden; background: var(--page-contact-background, #edb033); color: var(--page-contact-text, #fff); }
.page-contact__media, .page-contact__media img, .page-contact__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.page-contact__media img { object-fit: cover; }
.page-contact__overlay { background: var(--page-contact-overlay, #000); opacity: var(--page-contact-overlay-opacity, .25); }
.page-contact__inner { position: relative; z-index: 2; padding-block: clamp(82px, 9vw, 132px); text-align: center; }
.page-contact__pictogram { width: 42px; height: 42px; margin: 0 auto 12px; object-fit: contain; }
.page-contact__label { margin: 0 0 12px; font-size: .82rem; font-weight: 700; letter-spacing: .18em; line-height: 1.4; }
.page-contact__title { max-width: 900px; margin: 0 auto; font-size: var(--page-contact-title-size-pc, 64px); letter-spacing: -.035em; overflow-wrap: anywhere; }
.page-contact__text { max-width: 720px; margin: 24px auto 0; font-size: var(--page-contact-text-size-pc, 16px); line-height: 2; }
.page-contact__text > :first-child { margin-top: 0; }
.page-contact__text > :last-child { margin-bottom: 0; }
.page-contact__button { display: inline-flex; align-items: center; justify-content: center; gap: 30px; min-width: min(360px, 100%); min-height: 64px; margin-top: 42px; padding: 12px 30px; border: 1px solid var(--page-contact-button-background, #fff); border-radius: var(--header-cta-radius); background: var(--page-contact-button-background, #fff); color: var(--page-contact-button-text, #009944); font-weight: 700; text-decoration: none; transition: opacity .2s, transform .2s; }
.page-contact__button:hover { opacity: .88; transform: translateY(-2px); }

.mobile-fixed-footer { display: none; }

@media (max-width: 767px) {
  body.has-mobile-fixed-footer { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .mobile-fixed-footer {
    position: fixed;
    z-index: 1400;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    padding-bottom: env(safe-area-inset-bottom);
    background: var(--mobile-fixed-footer-bg, #000);
    color: var(--mobile-fixed-footer-color, #fff);
    box-shadow: 0 -1px 0 rgba(0,0,0,.12);
    visibility: hidden;
    opacity: 0;
    transform: translate3d(0, calc(100% + env(safe-area-inset-bottom)), 0);
    transition: opacity .42s ease, transform .68s cubic-bezier(.16,1,.3,1), visibility 0s linear .68s;
    will-change: opacity, transform;
    pointer-events: none;
  }
  .mobile-fixed-footer.is-visible {
    visibility: visible;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0s;
    pointer-events: auto;
  }
  .mobile-fixed-footer__inner {
    display: grid;
    grid-template-columns: repeat(var(--mobile-fixed-footer-columns, 3), minmax(0,1fr));
    min-height: 64px;
  }
  .mobile-fixed-footer__item {
    appearance: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    min-height: 64px;
    margin: 0;
    padding: 7px 4px 6px;
    border: 0;
    border-left: 1px solid color-mix(in srgb, currentColor 22%, transparent);
    border-radius: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
  }
  .mobile-fixed-footer__item:first-child { border-left: 0; }
  .mobile-fixed-footer__icon { display: grid; place-items: center; width: 23px; height: 23px; }
  .mobile-fixed-footer__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .mobile-fixed-footer__icon svg path:first-child { fill: none; }
  .mobile-fixed-footer__icon img { width: 100%; height: 100%; object-fit: contain; }
  .mobile-fixed-footer__label {
    display: block;
    max-width: 100%;
    overflow: hidden;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

.archive-main { padding-block: clamp(64px, 8vw, 110px); }
.news-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 clamp(38px, 5vw, 64px); }
.news-filter__item { display: inline-flex; align-items: center; justify-content: center; min-width: 104px; min-height: 44px; padding: 8px 20px; border: 1px solid var(--color-line); border-radius: var(--shortcode-button-radius); background: var(--color-base-background); color: var(--color-ink); font-size: .84rem; font-weight: 700; text-decoration: none; transition: border-color .2s, background .2s, color .2s; }
.news-filter__item:hover, .news-filter__item.is-current { border-color: var(--color-brand); background: var(--color-brand); color: #fff; }
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 28px; }
.post-card { min-width: 0; border: 1px solid var(--color-line); border-radius: min(var(--top-component-radius, 0px), 16px); overflow: hidden; background: var(--color-base-background); transition: transform .2s, box-shadow .2s; }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.post-card__link { display: block; height: 100%; text-decoration: none; }
.post-card__image { aspect-ratio: 3 / 2; overflow: hidden; background: var(--color-mist); }
.post-card__image img, .post-card__placeholder { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.post-card__placeholder { background: linear-gradient(135deg, color-mix(in srgb, var(--color-brand) 18%, #fff), color-mix(in srgb, #edb033 28%, #fff)); }
.post-card:hover img { transform: scale(1.035); }
.post-card__body { padding: 22px; }
.post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.post-card__category { display: inline-flex; align-items: center; min-height: 32px; padding: 5px 14px; border: 1px solid currentColor; border-radius: 4px; color: var(--color-brand); font-size: .7rem; font-weight: 700; letter-spacing: .06em; line-height: 1.2; }
.post-card__date-wrap { display: inline-flex; align-items: center; gap: 5px; min-height: 32px; }
.post-card__clock { display: grid; place-items: center; width: 14px; height: 14px; color: var(--color-muted); }
.post-card__clock svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.post-card__date { color: var(--color-muted); font-size: .82rem; }
.post-card__title { margin: 14px 0 0; font-size: 1.16rem; line-height: 1.65; }
.post-card__excerpt { margin: 0; color: var(--color-muted); font-size: .92rem; }
.post-card__title + .post-card__excerpt { margin-top: 10px; }
.work-card__image picture { display: block; width: 100%; height: 100%; }
.work-card__image picture img { width: 100%; height: 100%; object-fit: cover; }
.work-archive-grid { row-gap: 38px; }
.work-archive-grid .work-card { padding-bottom: 30px; border: 0; border-bottom: 1px solid var(--color-line); border-radius: 0; background: transparent; box-shadow: none; }
.work-archive-grid .work-card:hover { box-shadow: none; }
.work-archive-grid .work-card__image { border-radius: min(var(--top-component-radius, 0px), 14px); background: transparent; }
.work-archive-grid .post-card__placeholder { background: transparent; }
.work-archive-grid .work-card__body { padding: 20px 2px 0; }
.work-single-main { max-width: var(--container-wide); }
.work-single-main > .work-filter { margin-bottom: clamp(46px, 6vw, 72px); }
.work-entry__header { max-width: 860px; margin-right: auto; margin-left: auto; }
.work-entry .entry-title { font-size: clamp(1.6rem, 2.2vw, 2rem); }
.work-entry .entry-category { min-height: 28px; padding: 4px 12px; font-size: .66rem; }
.work-entry__thumbnail { width: min(100%, 860px); max-height: none; margin-right: auto; margin-left: auto; }
.work-entry__thumbnail img { width: 100%; height: auto; }
.work-entry__summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 clamp(42px, 6vw, 72px); border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.work-entry__summary > div { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 18px; padding: 22px 24px; }
.work-entry__summary > div + div { border-left: 1px solid var(--color-line); }
.work-entry__summary dt { color: var(--color-muted); font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.work-entry__summary dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.work-entry__content { max-width: 1280px; margin-inline: auto; }
.work-navigation .post-navigation__item { min-height: 56px; padding: 10px 4px; border: 0; }
.work-navigation .post-navigation__index { min-width: 340px; }
.nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 54px; }
.page-numbers { display: grid; place-items: center; min-width: 42px; min-height: 42px; padding: 0 10px; border: 1px solid var(--color-line); text-decoration: none; }
.page-numbers.current { background: var(--color-brand); color: #fff; border-color: var(--color-brand); }
.post-navigation { margin-top: clamp(56px, 7vw, 88px); padding-top: clamp(30px, 4vw, 44px); border-top: 1px solid var(--color-line); }
.post-navigation__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 18px; }
.post-navigation__item { display: flex; flex-direction: column; justify-content: center; min-width: 0; min-height: 76px; padding: 14px 18px; border: 1px solid var(--color-line); color: var(--color-ink); text-decoration: none; transition: border-color .2s, color .2s; }
.post-navigation__item:hover { border-color: var(--color-brand); color: var(--color-brand); }
.post-navigation__item--next { text-align: right; }
.post-navigation__item.is-empty { visibility: hidden; }
.post-navigation__direction { display: block; margin-bottom: 6px; color: var(--color-muted); font-size: .74rem; font-weight: 600; }
.post-navigation__item strong { overflow: hidden; font-size: .88rem; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }
.post-navigation__index { display: inline-flex; align-items: center; justify-content: center; min-width: 184px; min-height: 64px; padding: 12px 24px; border: 1px solid var(--color-brand); border-radius: var(--shortcode-button-radius); background: var(--color-brand); color: #fff; font-size: .9rem; font-weight: 700; text-align: center; text-decoration: none; transition: opacity .2s; }
.post-navigation__index:hover { opacity: .82; }
.news-navigation .post-navigation__item { min-height: 56px; padding: 10px 4px; border: 0; }
.news-navigation .post-navigation__index { min-width: 340px; }

.site-footer { background: var(--color-base-background); color: var(--color-ink); }
.site-footer__top { position: relative; padding-block: clamp(76px, 8vw, 118px); overflow: hidden; background: var(--footer-background); color: var(--footer-text); }
.site-footer__background, .site-footer__background img, .site-footer__background-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.site-footer__background { display: block; }
.site-footer__background img { object-fit: cover; }
.site-footer__background-overlay { z-index: 1; background: var(--footer-overlay-color, #000); opacity: var(--footer-overlay-opacity, .35); }
.site-footer__inner { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; }
.site-footer__logo { display: inline-flex; justify-content: center; width: min(280px, 75vw); text-decoration: none; }
.site-footer__logo img { width: 100%; max-height: 110px; object-fit: contain; object-position: center; }
.site-footer__logo--fallback img { filter: brightness(0) invert(1); }
.site-footer__text { max-width: 660px; margin: 30px 0 0; font-size: .94rem; line-height: 2.15; }
.site-footer__text > :first-child { margin-top: 0; }
.site-footer__text > :last-child { margin-bottom: 0; }
.site-footer__social { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 28px; }
.site-footer__social-link { display: grid; place-items: center; width: 34px; height: 34px; color: inherit; text-decoration: none; transition: opacity .2s, transform .2s; }
.site-footer__social-link svg { display: block; width: 19px; height: 19px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.site-footer__social-link .social-icon__fill { fill: currentColor; stroke: none; }
.site-footer__social-link:hover { opacity: .66; transform: translateY(-2px); }
.site-footer__navigation-bar { background: var(--color-base-background); border-bottom: 1px solid var(--color-line); }
.footer-navigation { width: min(calc(100% - 40px), 1100px); }
.footer-menu { display: flex; flex-wrap: wrap; justify-content: center; }
.footer-menu a { display: block; padding: 20px clamp(16px, 2.4vw, 30px); color: var(--color-ink); font-size: .92rem; font-weight: 500; text-decoration: none; transition: color .2s, opacity .2s; }
.footer-menu a:hover { color: var(--color-brand); opacity: .72; }
.site-footer__bottom { display: flex; justify-content: center; padding: 24px 20px; background: var(--color-base-background); color: var(--color-ink); text-align: center; }
.site-footer__bottom small { font-size: .72rem; letter-spacing: .03em; }

.error-404 { padding-block: 150px; text-align: center; }
.error-404__code { margin: 0; color: var(--color-brand); font-size: clamp(4rem, 12vw, 9rem); font-weight: 800; line-height: 1; }
.search-form { display: flex; max-width: 620px; gap: 10px; margin: 30px auto 0; }
.search-form label { flex: 1; }
.search-field { width: 100%; min-height: 50px; padding: 10px 14px; border: 1px solid var(--color-line); }
.search-submit { min-width: 90px; border: 0; background: var(--color-brand); color: #fff; }

@media (min-width: 768px) {
  .u-sp-only { display: none !important; }
  .uses-framed-header .site-header__utility { margin-right: -25px; }
  .hero__copy { transform: translate(var(--hero-copy-offset-x-pc, 0), var(--hero-copy-offset-y-pc, 0)); }
  .hero--pc-top-left .hero__content, .hero--pc-top-center .hero__content, .hero--pc-top-right .hero__content { align-self: start; }
  .hero--pc-center-left .hero__content, .hero--pc-center .hero__content, .hero--pc-center-right .hero__content { align-self: center; padding-bottom: clamp(64px, 8vh, 110px); }
  .hero--pc-bottom-center .hero__copy, .hero--pc-top-center .hero__copy, .hero--pc-center .hero__copy { margin-inline: auto; text-align: center; }
  .hero--pc-bottom-center .hero__text, .hero--pc-top-center .hero__text, .hero--pc-center .hero__text { margin-inline: auto; }
  .hero--pc-bottom-right .hero__copy, .hero--pc-top-right .hero__copy, .hero--pc-center-right .hero__copy { margin-left: auto; text-align: right; }
  .hero--pc-bottom-right .hero__text, .hero--pc-top-right .hero__text, .hero--pc-center-right .hero__text { margin-left: auto; }
  .hero-stage--framed { display: flow-root; height: 100svh; padding: 0; transition: none; }
  .hero-stage--framed.is-ready { padding-top: 0; }
  .hero-stage--framed .hero { z-index: 1100; width: 100%; height: 100svh; min-height: 100svh; margin-top: 0; margin-left: 0; border-radius: 0; transition: width 2s cubic-bezier(.22, 1, .36, 1) 1s, height 2s cubic-bezier(.22, 1, .36, 1) 1s, min-height 2s cubic-bezier(.22, 1, .36, 1) 1s, margin-top 2s cubic-bezier(.22, 1, .36, 1) 1s, margin-left 2s cubic-bezier(.22, 1, .36, 1) 1s, border-radius 2s cubic-bezier(.22, 1, .36, 1) 1s; will-change: width, height, margin; }
  .hero-stage--framed.is-ready .hero,
  .hero-stage--framed.is-settled .hero { width: calc(100% - 200px); height: calc(100svh - 200px); min-height: calc(100svh - 200px); margin-top: 100px; margin-left: 100px; border-radius: var(--hero-radius, 15px); }
  .hero-stage--framed.is-settled .hero { z-index: 1; transition: none; will-change: auto; }
  .hero-stage--framed .hero__media { top: 0; right: auto; bottom: auto; left: 0; width: 100vw; height: 100svh; transform: none; transition: top 2s cubic-bezier(.22, 1, .36, 1) 1s, left 2s cubic-bezier(.22, 1, .36, 1) 1s; will-change: top, left; }
  .hero-stage--framed.is-ready .hero__media,
  .hero-stage--framed.is-settled .hero__media { top: -100px; left: -100px; }
  .hero-stage--framed.is-settled .hero__media { transition: none; will-change: auto; }
  .hero-stage--framed .hero__content { width: calc(100% - 280px); max-width: none; margin-right: 140px; margin-left: 140px; padding-top: clamp(64px, 8vh, 110px); padding-bottom: calc(100px + clamp(42px, 6vh, 86px)); opacity: 0; transition: width 2s cubic-bezier(.22, 1, .36, 1) 1s, margin-right 2s cubic-bezier(.22, 1, .36, 1) 1s, margin-left 2s cubic-bezier(.22, 1, .36, 1) 1s, padding-bottom 2s cubic-bezier(.22, 1, .36, 1) 1s, opacity .5s ease 1.05s; }
  .hero-stage--framed.is-ready .hero__content,
  .hero-stage--framed.is-settled .hero__content { width: calc(100% - 80px); margin-right: 40px; margin-left: 40px; padding-bottom: clamp(42px, 6vh, 86px); opacity: 1; }
  .hero-stage--framed.is-settled .hero__content { transition: none; }
  .hero-stage--framed .hero__mark { opacity: 0; transition: opacity .5s ease 1.05s; }
  .hero-stage--framed.is-ready .hero__mark { opacity: 1; }
  .hero-stage--framed .hero-stage__side-copy { top: 50%; transition: opacity .3s ease 0s; }
  .hero-stage--framed .hero-pictos { top: 50%; transition: opacity .3s ease 0s; }
  .hero-stage--framed.is-settled .hero-stage__side-copy { position: fixed; z-index: 800; top: 50%; left: var(--hero-gutter-left-half); }
  .hero-stage--framed.is-settled .hero-pictos { position: fixed; z-index: 800; top: 50%; right: 0; }
  .hero-stage--framed .hero-news { position: absolute; z-index: 4; bottom: 0; left: var(--hero-gutter-left); width: calc(100% - var(--hero-gutter-left) - var(--hero-gutter-right)); min-height: 92px; margin-left: 0; background: var(--color-base-background); transition: opacity .4s ease 1.25s; }
  .hero-news__item { grid-template-columns: 14px max-content fit-content(620px); gap: 8px; }
  .hero-news__item time { margin-right: 18px; }
}
@media (max-width: 1023px) {
  .news-single-layout { grid-template-columns: minmax(0, 1fr); gap: 72px; }
  .news-sidebar__inner { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-sidebar__widget--cta-image { align-self: start; }
}
@media (max-width: 767px) {
  :root { --header-height: 68px; }
  .u-pc-only { display: none !important; }
  .is-hidden-desktop { display: revert !important; }
  .is-hidden-mobile { display: none !important; }
  .container, .container--wide { width: min(calc(100% - 32px), var(--container-wide)); }
  .site-branding { width: min(var(--logo-width-sp), 52vw); }
  .site-header__actions { display: none !important; }
  .site-header__utility { display: flex; gap: 0; margin-right: -8px; margin-left: auto; }
  .site-header__label { display: none !important; }
  .drawer-toggle { grid-template-rows: 19px 12px; width: 70px; height: 68px; gap: 7px; padding: 6px; }
  .drawer-toggle__lines { width: 35px; height: 19px; gap: 5px; }
  .drawer-toggle__lines span { height: 2.5px; }
  .drawer-toggle__label { width: 46px; font-size: .67rem; }
  .drawer__panel { padding: 24px; }
  .hero-stage--framed { padding: 0; }
  .hero-stage--framed.is-ready { padding-top: calc(var(--header-height) + 8px); }
  .hero-stage--framed .hero { width: 100%; min-height: 100svh; margin-left: 0; border-radius: 0; }
  .hero-stage--framed.is-ready .hero { width: calc(100% - 24px); min-height: var(--hero-height-sp, 82svh); margin-left: 12px; border-radius: min(var(--hero-radius, 16px), 22px); }
  .hero__content, .hero--framed .hero__content { padding-top: 90px; padding-bottom: 38px; }
  .hero__copy { width: 100%; margin-right: 0; margin-left: 0; text-align: left; transform: translate(var(--hero-copy-offset-x-sp, 0), var(--hero-copy-offset-y-sp, 0)); }
  .hero__title { font-size: calc(var(--hero-title-size-sp, 34) * 1px); line-height: 1.42; }
  .hero__text { margin-top: 15px; font-size: var(--hero-text-size-sp, .94rem); line-height: 1.8; }
  .hero__label { margin-bottom: 10px; font-size: var(--hero-label-size-sp, .7rem); }
  .hero__button { margin-top: 24px; }
  .hero__mark { width: min(54vw, 250px); }
  .hero--sp-top-left .hero__content, .hero--sp-top-center .hero__content, .hero--sp-top-right .hero__content { align-self: start; }
  .hero--sp-center-left .hero__content, .hero--sp-center .hero__content { align-self: center; padding-bottom: 70px; }
  .hero--sp-center-right .hero__content { align-self: center; padding-bottom: 70px; }
  .hero--sp-bottom-center .hero__copy, .hero--sp-top-center .hero__copy, .hero--sp-center .hero__copy { margin-inline: auto; text-align: center; }
  .hero--sp-bottom-center .hero__text, .hero--sp-top-center .hero__text, .hero--sp-center .hero__text { margin-inline: auto; }
  .hero--sp-bottom-right .hero__copy, .hero--sp-top-right .hero__copy, .hero--sp-center-right .hero__copy { margin-left: auto; text-align: right; }
  .hero--sp-bottom-right .hero__text, .hero--sp-top-right .hero__text, .hero--sp-center-right .hero__text { margin-left: auto; }
  .hero-news { width: calc(100% - 24px); min-height: 82px; margin-left: 12px; }
  .hero-stage--fullscreen .hero-news { width: calc(100% - 24px); margin-inline: auto; }
  .hero-news__list { padding-left: 10px; }
  .hero-news__item { grid-template-columns: 14px 72px minmax(0, 1fr); justify-content: stretch; gap: 6px; }
  .hero-news__item time { font-size: .7rem; }
  .hero-news__item a { font-size: .82rem; }
  .page-header { min-height: var(--page-header-height-sp, 280px); }
  .page-header__inner { padding-block: 44px; }
  .page-header__pictogram { width: var(--page-header-pictogram-size-sp, 36px); max-height: var(--page-header-pictogram-size-sp, 36px); margin-bottom: 10px; }
  .page-header__label { font-size: .7rem; }
  .page-header__title { font-size: var(--page-header-title-size-sp, 28px); }
  .page-header__description { margin-top: 14px; font-size: .9rem; line-height: 1.8; }
  .breadcrumb__list { min-height: 52px; }
  .breadcrumb__item + .breadcrumb__item::before { margin-inline: 9px; }
  .page-main, .single-main { padding-block: 64px; }
  .page-contact { min-height: 430px; }
  .page-contact__inner { padding-block: 72px; }
  .page-contact__pictogram { width: 34px; height: 34px; margin-bottom: 10px; }
  .page-contact__title { font-size: var(--page-contact-title-size-sp, 38px); }
  .page-contact__text { margin-top: 18px; font-size: var(--page-contact-text-size-sp, 15px); }
  .page-contact__button { min-width: min(320px, 100%); min-height: 58px; margin-top: 34px; }
  .news-filter { flex-wrap: nowrap; justify-content: flex-start; margin-right: -20px; margin-left: -20px; padding: 0 20px 6px; overflow-x: auto; scrollbar-width: none; }
  .news-filter::-webkit-scrollbar { display: none; }
  .news-filter__item { flex: 0 0 auto; min-width: 94px; min-height: 42px; padding-inline: 17px; }
  .post-grid { grid-template-columns: 1fr; gap: 28px; }
  .post-card__body { padding: 19px 18px 22px; }
  .post-card__title { font-size: 1.08rem; }
  .work-archive-grid { gap: 26px; }
  .work-archive-grid .work-card { padding-bottom: 24px; }
  .work-archive-grid .work-card__body { padding-top: 17px; }
  .work-entry .entry-title { font-size: 20px; line-height: 1.5; }
  .work-entry .entry-category { min-height: 26px; padding: 3px 10px; font-size: .62rem; }
  .work-entry__summary { grid-template-columns: minmax(0, 1fr); }
  .work-entry__summary > div { grid-template-columns: 82px minmax(0, 1fr); padding: 17px 0; }
  .work-entry__summary > div + div { border-top: 1px solid var(--color-line); border-left: 0; }
  .entry--single .entry-title { font-size: var(--news-single-title-size-sp, clamp(1.65rem, 7.4vw, 2.2rem)); }
  .entry-thumbnail { margin-bottom: 34px; }
  .entry--single .entry-content { font-size: .96rem; }
  .news-single-layout { gap: 58px; }
  .news-sidebar__inner { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .news-sidebar__widget { padding: 23px 20px; }
  .news-sidebar__widget--cta-image { padding: 0; }
  .post-navigation__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .post-navigation__index { grid-column: 1 / -1; grid-row: 2; justify-self: center; width: min(210px, 70vw); min-width: 0; min-height: 48px; padding: 9px 18px; }
  .post-navigation__item { min-height: 56px; padding: 10px 12px; }
  .post-navigation__item.is-empty { display: block; }
  .post-navigation__item strong { display: none; }
  .post-navigation__direction { margin: 0; font-size: .76rem; }
  .post-navigation__item--next .post-navigation__direction { text-align: right; }
  .news-navigation .post-navigation__item { min-height: 44px; padding: 7px 2px; border: 0; }
  .news-navigation .post-navigation__index { width: min(260px, 82vw); min-width: 0; }
  .work-navigation .post-navigation__item { min-height: 44px; padding: 7px 2px; border: 0; }
  .work-navigation .post-navigation__index { width: min(260px, 82vw); min-width: 0; }
  .site-footer__top { padding-block: 68px; }
  .site-footer__logo { width: min(235px, 70vw); }
  .site-footer__text { margin-top: 24px; font-size: .88rem; line-height: 2; }
  .site-footer__social { gap: 12px; margin-top: 24px; }
  .footer-navigation { width: 100%; }
  .footer-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-menu a { padding: 15px 12px; border-bottom: 1px solid var(--color-line); text-align: center; }
  .footer-menu li:nth-last-child(-n+2) a { border-bottom: 0; }
  .site-footer__bottom { padding-block: 20px; }
  :where(.entry-content) :where(table) { display: block; overflow-x: auto; white-space: nowrap; }
}

@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .admin-bar .hero-stage--framed.is-ready { padding-top: calc(var(--header-height) + 54px); }
}
@media (min-width: 783px) {
  .admin-bar .site-header { top: 32px; }
  .admin-bar .hero-stage--framed.is-ready { padding-top: 0; }
  .admin-bar .hero-stage__side-copy,
  .admin-bar .hero-pictos { top: 50%; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } .has-framed-hero.is-hero-ready .site-header { transition-delay: 0s; } }
