.front-page-main { max-width: 100%; overflow-x: hidden; overflow-x: clip; }
.front-page-main .entry-content { overflow: clip; }

.home-section {
  position: relative;
  padding: clamp(88px, 9vw, 150px) max(40px, calc((100vw - 1280px) / 2));
}

.home-section--white { background: var(--color-base-background); color: var(--color-ink); }
.home-section--gray { background: var(--color-sub-background); color: var(--color-ink); }
.home-section--dark { background: var(--color-main-background); color: var(--color-main-background-text); }
.home-section--custom-dark .home-section__label { color: var(--section-label-color, rgba(255,255,255,.82)); }
.home-section--custom-dark .home-section__caption,
.home-section--custom-dark .home-latest__intro { color: var(--section-caption-color, rgba(255,255,255,.82)); }
.home-section__background,
.home-section__background-picture,
.home-section__background-picture img,
.home-section__background-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-section__background { transform: scale(var(--section-background-scale, 1)); transform-origin: center; will-change: transform; }
.home-section__background-picture { display: block; }
.home-section__background-picture img { object-fit: cover; }
.home-section__background-overlay { z-index: 1; background: var(--section-overlay-color, #000); opacity: var(--section-overlay-opacity, 0); }
.home-section__inner { position: relative; z-index: 2; width: min(100%, 1280px); margin-inline: auto; }
.home-section--has-image { overflow: hidden; color: #fff; }
.home-section--has-image .home-section__label { color: var(--section-label-color, rgba(255,255,255,.86)); }
.home-section--has-image .home-section__title { color: var(--section-title-color, #fff); }
.home-section--has-image .home-section__caption,
.home-section--has-image .home-latest__intro { color: var(--section-caption-color, rgba(255,255,255,.88)); }
.home-section__heading { display: grid; grid-template-columns: minmax(150px, 190px) minmax(0, 1fr); align-items: start; gap: 10px clamp(28px, 4vw, 58px); margin-bottom: clamp(46px, 6vw, 88px); }
.home-section__label { margin: .75em 0 0; color: var(--section-label-color, var(--color-brand)); font-size: .9rem; font-weight: 700; letter-spacing: .18em; line-height: 1.4; }
.home-section__pictogram { display: block; width: 42px; height: 42px; margin: 0 0 12px; }
.home-section__pictogram img { display: block; width: 100%; height: 100%; object-fit: contain; }
.home-section--dark .home-section__label { color: var(--section-label-color, var(--color-main-background-text)); }
.home-section__title { max-width: 850px; margin: 0; color: var(--section-title-color, inherit); font-size: var(--section-title-size-pc, 34px); font-weight: 600; letter-spacing: -.03em; line-height: 1.32; }
/* Keep the saved CONCEPT title as the source of truth on every device. This
 * also neutralizes legacy project CSS that replaced the mobile text through
 * font-size:0 and a hard-coded ::after value. */
.front-page-main .home-section--concept .home-section__title { font-size: var(--section-title-size-pc, 34px) !important; line-height: 1.32 !important; }
.front-page-main .home-section--concept .home-section__title::after { display: none !important; content: none !important; }
.home-section__caption { grid-column: 2; max-width: 760px; margin: 12px 0 0; color: var(--section-caption-color, var(--color-muted)); font-size: clamp(.94rem, 1.2vw, 1.05rem); line-height: 1.9; }
.home-section--dark .home-section__caption,
.home-section--dark .home-latest__intro { color: var(--section-caption-color, var(--color-main-background-text)); opacity: .82; }
.home-section--align-center .home-section__heading,
.home-section--concept .home-section__heading,
.home-section--service .home-section__heading,
.home-section--works .home-section__heading,
.home-section--latest .home-section__heading,
.home-section--company .home-section__heading { display: block; text-align: center; }
.home-section--align-center .home-section__label,
.home-section--concept .home-section__label,
.home-section--service .home-section__label,
.home-section--works .home-section__label,
.home-section--latest .home-section__label,
.home-section--company .home-section__label { margin: 0 0 12px; }
.home-section--align-center .home-section__pictogram,
.home-section--concept .home-section__pictogram,
.home-section--service .home-section__pictogram,
.home-section--works .home-section__pictogram,
.home-section--latest .home-section__pictogram,
.home-section--company .home-section__pictogram,
.home-contact__label .home-section__pictogram { margin-right: auto; margin-left: auto; }
.home-section--align-center .home-section__title,
.home-section--concept .home-section__title,
.home-section--service .home-section__title,
.home-section--works .home-section__title,
.home-section--latest .home-section__title,
.home-section--company .home-section__title { margin-inline: auto; }
.home-section--align-center .home-section__caption,
.home-section--concept .home-section__caption,
.home-section--service .home-section__caption,
.home-section--works .home-section__caption,
.home-section--latest .home-section__caption,
.home-section--company .home-section__caption { max-width: 760px; margin: 18px auto 0; text-align: center; }
.home-section__content > br { display: none; }
.home-section__content > :first-child { margin-top: 0; }
.home-section__content > :last-child { margin-bottom: 0; }
.home-section .tabeo-button,
.home-contact .tabeo-button { border-color: var(--section-button-background, var(--shortcode-button-border)); background: var(--section-button-background, var(--shortcode-button-background)); color: var(--section-button-text-color, var(--shortcode-button-text)); }
.home-section .tabeo-button:hover,
.home-contact .tabeo-button:hover { border-color: var(--section-button-background, var(--shortcode-button-hover-background)); background: var(--section-button-background, var(--shortcode-button-hover-background)); color: var(--section-button-text-color, var(--shortcode-button-hover-text)); opacity: .86; }

.home-media-text { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr); align-items: center; gap: clamp(44px, 7vw, 110px); }
.home-media-text--image-right .home-media-text__media { order: 2; }
.home-media-text--image-right .home-media-text__body { order: 1; }
.home-media-text__media,
.home-media-text__picture { display: block; overflow: hidden; border-radius: var(--top-component-radius, 0); background: #e6e8e5; }
.home-media-text__picture img,
.home-media-text__media > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .7s cubic-bezier(.16,1,.3,1); }
.home-media-text:hover .home-media-text__picture img { transform: scale(1.025); }
.home-media-text__body { max-width: 610px; color: var(--body-text-color, inherit); font-size: clamp(.98rem, 1.2vw, 1.08rem); line-height: 2; }
.home-media-text__body > br, .home-media-text__body > p:empty { display: none; }
.home-media-text__body h3 { margin: 0 0 1.1em; color: var(--body-heading-color, inherit); font-size: var(--body-heading-size-pc, 28px); }
.home-media-text__body .tabeo-button { margin-top: clamp(38px, 5vw, 64px); }
.home-media-text__media:empty { display: none; }
.home-media-text:has(.home-media-text__media:empty) { grid-template-columns: 1fr; }

.home-card-grid { display: grid; gap: clamp(22px, 3vw, 38px); }
.home-card-grid > br, .home-card-grid > p:empty { display: none; }
.home-card-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-card-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-card { min-width: 0; margin: 0; overflow: hidden; border-radius: var(--top-component-radius, 0); background: var(--color-base-background); color: var(--color-ink); box-shadow: 0 1px 0 rgba(23,33,43,.08); transition: transform .35s ease, box-shadow .35s ease; }
.home-card:hover { transform: translateY(-6px); box-shadow: 0 18px 46px rgba(23,33,43,.12); }
.home-card__link { display: block; height: 100%; color: inherit; text-decoration: none; }
.home-card__picture { display: block; overflow: hidden; background: #e6e8e5; }
.home-card__picture img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.home-card:hover .home-card__picture img { transform: scale(1.045); }
.home-card__body { position: relative; padding: clamp(22px, 2.4vw, 34px); }
.home-card__label { margin: 0 0 10px; color: var(--color-brand); font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
.home-card__title { margin: 0; font-size: clamp(1.2rem, 1.8vw, 1.65rem); line-height: 1.5; }
.home-card__text { margin-top: 14px; color: var(--color-muted); font-size: .92rem; line-height: 1.8; }
.home-card__text > :last-child { margin-bottom: 0; }
.home-card__arrow { display: grid; place-items: center; width: 38px; height: 38px; margin: 22px 0 0 auto; border: 1px solid var(--section-button-background, var(--color-line)); border-radius: var(--top-button-radius, 0); background: var(--section-button-background, transparent); color: var(--section-button-text-color, inherit); transition: background .25s, color .25s, border-color .25s, opacity .25s; }
.home-card:hover .home-card__arrow { border-color: var(--section-button-background, var(--color-brand)); background: var(--section-button-background, var(--color-brand)); color: var(--section-button-text-color, #fff); opacity: .86; }
.home-section--dark .home-card { background: rgba(255,255,255,.96); }

/* One-off TABEO walking-message decoration. */
.home-section--tabeo-walking {
  isolation: isolate;
  overflow: hidden;
}
.tabeo-walking-clouds {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.tabeo-walking-cloud {
  --cloud-shift-negative: -75px;
  --cloud-shift-positive: 75px;
  position: absolute;
  display: block;
  width: 250px;
  height: auto;
  opacity: .72;
  will-change: transform;
}
.tabeo-walking-cloud--lower-left {
  top: calc(29% - 70px);
  left: max(5vw, calc(50% - 600px));
  animation: tabeo-cloud-drift-left 12s ease-in-out infinite alternate;
}
.tabeo-walking-cloud--upper-right {
  top: 15%;
  right: max(5vw, calc(50% - 600px));
  animation: tabeo-cloud-drift-right 14.5s ease-in-out -3s infinite alternate;
}
@keyframes tabeo-cloud-drift-left {
  from { transform: translate3d(var(--cloud-shift-negative), calc(-50% + 6px), 0); }
  to { transform: translate3d(var(--cloud-shift-positive), calc(-50% - 6px), 0); }
}
@keyframes tabeo-cloud-drift-right {
  from { transform: translate3d(var(--cloud-shift-positive), calc(-50% - 5px), 0); }
  to { transform: translate3d(var(--cloud-shift-negative), calc(-50% + 7px), 0); }
}

/* Works: the solid background frame expands on the first desktop scroll. */
.home-section--works { min-height: 200svh; margin-top: calc(clamp(90px, 10vw, 160px) * -1); padding: 0; overflow: visible; background: var(--color-base-background); color: #fff; }
.home-section--works .home-section__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.home-section--works .home-section__reveal { --works-reveal-inset: clamp(100px, 14.7vw, 200px); --works-reveal-radius: var(--top-component-radius, 0px); position: relative; display: grid; align-items: center; width: 100%; height: 100%; overflow: hidden; clip-path: inset(var(--works-reveal-current, var(--works-reveal-inset)) round var(--works-reveal-radius-current, var(--works-reveal-radius))); background: var(--color-main-background); transform: translateZ(0); }
.home-section--works.home-section--white .home-section__reveal { background: var(--color-base-background); }
.home-section--works.home-section--gray .home-section__reveal { background: var(--color-sub-background); }
.home-section--works.home-section--dark .home-section__reveal { background: var(--color-main-background); }
.home-section--works.home-section--custom-light .home-section__reveal,
.home-section--works.home-section--custom-dark .home-section__reveal { background: var(--section-custom-background, var(--color-main-background)); }
.home-section--works .home-section__background { transform: none; will-change: auto; }
.home-section--works .home-section__background-picture,
.home-section--works .home-section__background-picture img { height: 100%; }
.home-section--works .home-section__inner { width: min(calc(100% - 280px), 1080px); padding-block: clamp(46px, 6.5vh, 78px); }
.home-section--works .home-section__heading { margin-bottom: clamp(34px, 4.5vh, 54px); }
.home-section--works .home-section__label { color: var(--section-label-color, #fff); }
.home-section--works .home-section__title { color: var(--section-title-color, #fff); }
.home-section--works .home-section__caption { color: var(--section-caption-color, #fff); }
.home-section--works.is-reveal-pending:not(.is-content-visible) .home-section__heading,
.home-section--works.is-reveal-pending:not(.is-content-visible) .home-works__viewport,
.home-section--works.is-reveal-pending:not(.is-content-visible) .home-works__controls,
.home-section--works.is-reveal-pending:not(.is-content-visible) .home-works__more { opacity: 0; transform: none; pointer-events: none; }
.home-section--works.is-content-visible .home-section__heading { transition: opacity .65s ease, transform .85s cubic-bezier(.16,1,.3,1); }
.home-section--works.is-content-visible .home-works__viewport { transition: opacity .65s ease .1s, transform .85s cubic-bezier(.16,1,.3,1) .1s; }
.home-section--works.is-content-visible .home-works__controls { transition: opacity .65s ease .2s, transform .85s cubic-bezier(.16,1,.3,1) .2s; }
.home-section--works.is-content-visible .home-works__more { transition: opacity .65s ease .28s, transform .85s cubic-bezier(.16,1,.3,1) .28s; }

.home-works { position: relative; }
.home-works__viewport { width: 100%; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; touch-action: pan-x pan-y pinch-zoom; -webkit-overflow-scrolling: touch; }
.home-works__viewport:active, .home-works__viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.home-works__viewport::-webkit-scrollbar { display: none; }
.home-works__track { display: flex; gap: 36px; }
.home-works__track > br, .home-works__track > p:empty { display: none; }
.home-work { flex: 0 0 calc(33.333% - 24px); min-width: 0; margin: 0; scroll-snap-align: start; background: transparent; color: #fff; box-shadow: none; }
.home-work__link { display: block; height: 100%; color: inherit; text-decoration: none; }
.home-work__picture, .home-work__placeholder { display: block; aspect-ratio: 800 / 541; overflow: hidden; }
.home-work__picture { background: transparent; }
.home-work__placeholder { background: rgba(255,255,255,.12); }
.home-work__picture,
.home-work__placeholder,
.home-work__link > img { border-radius: var(--top-component-radius, 0); }
.home-work__link > img { display: block; width: 100%; aspect-ratio: 800 / 541; object-fit: cover; }
.home-work__picture img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.16,1,.3,1); }
.home-work:hover .home-work__picture img { transform: scale(1.045); }
.home-work__body { padding: 20px 0 0 2px; }
.home-work__category { display: inline-flex; align-items: center; min-height: 34px; margin: 0 0 12px; padding: 5px 17px; border: 1px solid rgba(255,255,255,.9); border-radius: 4px; color: #fff; font-size: .72rem; font-weight: 500; letter-spacing: .06em; line-height: 1.2; }
.home-work__title { margin: 0; color: #fff; font-size: clamp(1.05rem, 1.45vw, 1.3rem); line-height: 1.55; }
.home-section--works:not(.home-section--has-image).home-section--white .home-section__label,
.home-section--works:not(.home-section--has-image).home-section--gray .home-section__label,
.home-section--works:not(.home-section--has-image).home-section--custom-light .home-section__label { color: var(--section-label-color, var(--color-brand)); }
.home-section--works:not(.home-section--has-image).home-section--white .home-section__title,
.home-section--works:not(.home-section--has-image).home-section--gray .home-section__title,
.home-section--works:not(.home-section--has-image).home-section--custom-light .home-section__title,
.home-section--works:not(.home-section--has-image).home-section--white .home-section__caption,
.home-section--works:not(.home-section--has-image).home-section--gray .home-section__caption,
.home-section--works:not(.home-section--has-image).home-section--custom-light .home-section__caption,
.home-section--works:not(.home-section--has-image).home-section--white .home-work,
.home-section--works:not(.home-section--has-image).home-section--gray .home-work,
.home-section--works:not(.home-section--has-image).home-section--custom-light .home-work,
.home-section--works:not(.home-section--has-image).home-section--white .home-work__title,
.home-section--works:not(.home-section--has-image).home-section--gray .home-work__title,
.home-section--works:not(.home-section--has-image).home-section--custom-light .home-work__title,
.home-section--works:not(.home-section--has-image).home-section--white .home-work__category,
.home-section--works:not(.home-section--has-image).home-section--gray .home-work__category,
.home-section--works:not(.home-section--has-image).home-section--custom-light .home-work__category { border-color: currentColor; color: var(--section-title-color, var(--color-ink)); }
.home-works__controls { position: absolute; z-index: 4; top: 45%; right: -92px; left: -92px; display: flex; justify-content: space-between; transform: translateY(-50%); pointer-events: none; }
.home-works__control { display: grid; place-items: center; width: 70px; height: 70px; padding: 0; border: 0; border-radius: var(--top-button-radius, 0); background: #fff; color: var(--color-brand); box-shadow: 0 12px 35px rgba(0,0,0,.12); cursor: pointer; pointer-events: auto; transition: background .25s, color .25s, transform .25s; }
.home-works__control:hover { background: var(--color-accent); color: #fff; transform: scale(1.04); }
.home-works__control:disabled { visibility: hidden; }
.home-works__more { margin-top: clamp(38px, 6vh, 70px); text-align: center; }
.home-works__more .tabeo-button { margin-top: 0; }
.home-works__more .home-works__more-button { min-width: min(300px, 100%); min-height: 70px; border-color: var(--section-button-background, #fff); border-radius: var(--top-button-radius, 0); background: var(--section-button-background, #fff); color: var(--section-button-text-color, var(--color-brand)); }
.home-works__more .home-works__more-button:hover { border-color: var(--section-button-background, var(--color-accent)); background: var(--section-button-background, var(--color-accent)); color: var(--section-button-text-color, #fff); opacity: .86; }

.home-latest__intro { max-width: 760px; margin: -52px auto clamp(36px, 5vw, 64px); color: var(--section-caption-color, var(--color-muted)); text-align: center; }
.home-latest__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(22px, 3vw, 40px); }
.home-latest__card { min-width: 0; margin: 0; }
.home-latest__link { display: block; color: inherit; text-decoration: none; }
.home-latest__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--top-component-radius, 0); background: #e7ece6; }
.home-latest__image, .home-latest__placeholder { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.home-latest__placeholder { background: linear-gradient(135deg, rgba(0,153,68,.2), rgba(237,176,51,.35)); }
.home-latest__card:hover .home-latest__image { transform: scale(1.045); }
.home-latest__body { display: grid; grid-template-columns: max-content 1fr; gap: 8px 16px; padding-top: 22px; }
.home-latest__category { display: inline-flex; align-items: center; width: fit-content; min-height: 34px; padding: 5px 17px; border: 1px solid currentColor; border-radius: 4px; color: var(--color-brand); font-size: .72rem; font-weight: 700; letter-spacing: .08em; line-height: 1.2; }
.home-latest__date-wrap { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; }
.home-latest__clock { display: grid; place-items: center; width: 14px; height: 14px; color: var(--color-muted); }
.home-latest__clock svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.home-latest__date { color: var(--color-muted); font-size: .78rem; font-variant-numeric: tabular-nums; }
.home-latest__title { grid-column: 1 / -1; color: var(--news-title-color, inherit); font-size: clamp(1.02rem, 1.45vw, 1.25rem); font-weight: 600; line-height: 1.65; }
.home-section--dark .home-latest__category,
.home-section--custom-dark .home-latest__category,
.home-section--dark .home-latest__clock,
.home-section--custom-dark .home-latest__clock,
.home-section--dark .home-latest__date,
.home-section--custom-dark .home-latest__date { color: var(--section-caption-color, rgba(255,255,255,.86)); }
.home-latest__more { margin-top: clamp(38px, 5vw, 64px); text-align: center; }
.home-latest__more .tabeo-button { margin-top: 0; }
.home-latest__empty { grid-column: 1 / -1; margin: 0; padding: 32px; background: #f3f4ef; text-align: center; }

.home-contact { position: relative; display: grid; place-items: center; width: 100%; min-height: clamp(520px, 52vw, 680px); padding: clamp(80px, 9vw, 130px) 40px; overflow: hidden; background: #edb033; color: var(--color-ink); text-align: center; }
.home-contact--background-white { background: var(--color-base-background); color: var(--color-ink); }
.home-contact--background-gray { background: var(--color-sub-background); color: var(--color-ink); }
.home-contact--background-dark { background: var(--color-main-background); color: var(--color-main-background-text); }
.home-contact__picture, .home-contact__picture img, .home-contact__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-contact__picture img { object-fit: cover; }
.home-contact__overlay { background: var(--section-overlay-color, transparent); opacity: 0; }
.home-contact--has-image { color: #fff; }
.home-contact--has-image .home-contact__overlay { opacity: var(--section-overlay-opacity, .55); }
.home-contact__inner { position: relative; z-index: 2; width: min(100%, 850px); }
.home-contact__label { margin: 0 0 18px; color: var(--section-label-color, inherit); font-size: .76rem; font-weight: 700; letter-spacing: .22em; }
.home-contact__title { margin: 0; color: var(--section-title-color, inherit); font-size: var(--section-title-size-pc, 34px); letter-spacing: -.035em; }
.home-contact__text { margin: 26px 0 0; color: var(--section-caption-color, inherit); font-size: clamp(1rem, 1.5vw, 1.18rem); }
.home-contact__button { margin-top: 38px; }
.front-page-main .tabeo-button,
.hero-stage .hero__button { border-radius: var(--top-button-radius, 0); }
.home-free-width--normal { max-width: 900px; }
.home-free-width--wide { max-width: 1280px; }
.home-free-width--full { width: 100%; max-width: none; }
.home-section--free-full { padding-right: 0; padding-left: 0; }
.home-section--free-full .home-section__inner { width: 100%; max-width: none; }
.home-free-content > :first-child { margin-top: 0; }
.home-free-content > :last-child { margin-bottom: 0; }
.home-free-content .aligncenter { display: block; float: none; margin-right: auto; margin-left: auto; }
.home-free-content .alignleft { float: left; margin: .35em 1.5em 1em 0; }
.home-free-content .alignright { float: right; margin: .35em 0 1em 1.5em; }
.home-free-content::after { display: table; clear: both; content: ""; }
.home-free-content iframe { max-width: 100%; }
.home-complete-free { position: relative; width: 100%; }
.home-complete-free__inner { width: calc(100% - 48px); margin-right: auto; margin-left: auto; }
.home-complete-free__inner.home-free-width--full { width: 100%; }
.home-complete-free__content > :first-child { margin-top: 0; }
.home-complete-free__content > :last-child { margin-bottom: 0; }
.home-complete-free__content iframe { max-width: 100%; }
.home-section[id], .home-contact[id], .home-complete-free[id] { scroll-margin-top: calc(var(--header-height) + 16px); }

.tabeo-background-motion .home-section__background-picture img { opacity: .35; transform: scale(1.28) translate3d(0, 5%, 0); filter: blur(7px); transition: opacity 1.1s ease, transform 1.7s cubic-bezier(.16,1,.3,1), filter 1.35s ease; will-change: opacity, transform, filter; }
.is-motion-visible .tabeo-background-motion .home-section__background-picture img { opacity: 1; transform: scale(1) translate3d(0, 0, 0); filter: blur(0); }
.tabeo-reveal--service-left { transform: translate3d(-145px, 78px, 0) scale(.82) rotate(-4.5deg); }
.tabeo-reveal--service-right { transform: translate3d(145px, 78px, 0) scale(.82) rotate(4.5deg); }
.tabeo-reveal--news-card { transform: translate3d(0, 105px, 0) scale(.82) rotate(-2deg); }
.tabeo-reveal--news-card:nth-child(even) { transform: translate3d(0, 105px, 0) scale(.82) rotate(2deg); }
.tabeo-reveal--media-left { clip-path: inset(0 100% 0 0 round var(--top-component-radius, 0)); transform: translate3d(-115px, 0, 0) scale(.86) rotate(-2.5deg); }
.tabeo-reveal--media-right { clip-path: inset(0 0 0 100% round var(--top-component-radius, 0)); transform: translate3d(115px, 0, 0) scale(.86) rotate(2.5deg); }
.tabeo-reveal--media-left .home-media-text__picture img,
.tabeo-reveal--media-left > img { transform: scale(1.3) translate3d(-7%, 0, 0); transition: transform 1.55s cubic-bezier(.16,1,.3,1) calc(var(--tabeo-reveal-delay) + 100ms); }
.tabeo-reveal--media-right .home-media-text__picture img,
.tabeo-reveal--media-right > img { transform: scale(1.3) translate3d(7%, 0, 0); transition: transform 1.55s cubic-bezier(.16,1,.3,1) calc(var(--tabeo-reveal-delay) + 100ms); }
.tabeo-motion-section:not(.is-motion-visible) .home-card__picture img,
.tabeo-motion-section:not(.is-motion-visible) .home-latest__image { transform: scale(1.3) translate3d(7%, 0, 0); filter: blur(5px); }
.tabeo-motion-section:not(.is-motion-visible) .home-card:nth-child(even) .home-card__picture img,
.tabeo-motion-section:not(.is-motion-visible) .home-latest__card:nth-child(even) .home-latest__image { transform: scale(1.3) translate3d(-7%, 0, 0); }
.tabeo-motion-section .home-card__picture img,
.tabeo-motion-section .home-latest__image { transition: transform 1.45s cubic-bezier(.16,1,.3,1), filter 1.15s ease; }
.is-motion-visible .tabeo-reveal--service-left,
.is-motion-visible .tabeo-reveal--service-right,
.is-motion-visible .tabeo-reveal--news-card { transform: translate3d(0, 0, 0) scale(1) rotate(0); }
.is-motion-visible .tabeo-reveal--media-left,
.is-motion-visible .tabeo-reveal--media-right { clip-path: inset(0 0 0 0 round var(--top-component-radius, 0)); transform: translate3d(0, 0, 0); }
.is-motion-visible .tabeo-reveal--media-left .home-media-text__picture img,
.is-motion-visible .tabeo-reveal--media-left > img,
.is-motion-visible .tabeo-reveal--media-right .home-media-text__picture img,
.is-motion-visible .tabeo-reveal--media-right > img,
.is-motion-visible .home-card__picture img,
.is-motion-visible .home-latest__image { transform: scale(1) translate3d(0, 0, 0); filter: blur(0); }
.is-motion-visible .home-card.tabeo-reveal:hover { transform: translateY(-6px); }
.is-motion-visible .home-card:hover .home-card__picture img,
.is-motion-visible .home-work:hover .home-work__picture img { transform: scale(1.055) translate3d(0, 0, 0); }

@media (min-width: 768px) {
  .has-framed-hero .home-section:not(.home-section--works) { padding-right: max(140px, calc((100vw - 1080px) / 2)); padding-left: max(140px, calc((100vw - 1080px) / 2)); }
  .has-framed-hero .home-section.home-section--free-full { padding-right: 0; padding-left: 0; }
  .has-framed-hero .home-complete-free__inner:not(.home-free-width--full) { width: calc(100% - 280px); }
}

@media (max-width: 980px) {
  .home-card-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-media-text { grid-template-columns: minmax(0, 1fr) minmax(280px, .85fr); gap: 44px; }
  .home-works__track { gap: 28px; }
  .home-work { flex-basis: calc(50% - 14px); }
  .home-latest__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .home-section { padding: 72px 20px; }
  .home-section.home-section--free-full { padding-right: 0; padding-left: 0; }
  .home-complete-free__inner { width: calc(100% - 40px); }
  .home-complete-free__inner.home-free-width--full { width: 100%; }
  .home-section__heading { display: block; margin-bottom: 38px; text-align: left; }
  .home-section__label { margin: 0 0 10px; }
  .home-section__pictogram { width: 34px; height: 34px; margin-bottom: 10px; }
  .home-section__title { font-size: var(--section-title-size-sp, 26px); }
  .front-page-main .home-section--concept .home-section__title { font-size: var(--section-title-size-sp, 26px) !important; }
  .home-section__caption { margin: 14px 0 0; }
  .home-latest__intro { margin: -12px auto 34px; text-align: center; }
  .home-media-text { grid-template-columns: 1fr; gap: 30px; }
  .home-media-text--image-right .home-media-text__media,
  .home-media-text--image-right .home-media-text__body { order: initial; }
  .home-media-text__media,
  .home-media-text__picture,
  .home-card,
  .home-work__picture,
  .home-work__placeholder,
  .home-work__link > img,
  .home-latest__media { border-radius: min(var(--top-component-radius, 0px), 12px); }
  .home-media-text__body { font-size: .96rem; line-height: 1.9; }
  .home-media-text__body h3 { font-size: var(--body-heading-size-sp, 20px); }
  .home-media-text__body > .tabeo-button { display: flex; width: fit-content; margin-right: auto; margin-left: auto; }
  .home-card-grid,
  .home-card-grid--2,
  .home-card-grid--3,
  .home-card-grid--4 { grid-template-columns: 1fr; gap: 22px; }
  .home-section--service .home-card-grid { display: flex; gap: 18px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; touch-action: pan-x pan-y pinch-zoom; -webkit-overflow-scrolling: touch; }
  .home-section--service .home-card-grid::-webkit-scrollbar { display: none; }
  .home-section--service .home-card { flex: 0 0 64%; width: 64%; max-width: 64%; scroll-snap-align: start; }
  .home-card:hover { transform: none; }
  .home-section--works { width: 100%; max-width: 100%; min-height: 0; margin-top: -56px; padding: 0; overflow: hidden; }
  .home-section--works .home-section__sticky { position: relative; width: 100%; max-width: 100%; height: auto; min-height: 0; overflow: hidden; }
  .home-section--works .home-section__reveal { --works-reveal-inset: clamp(48px, 14vw, 72px); width: 100%; max-width: 100%; min-height: 760px; clip-path: inset(var(--works-reveal-current, var(--works-reveal-inset)) round var(--works-reveal-radius-current, var(--works-reveal-radius))); }
  .home-section--works .home-section__inner { width: 100%; max-width: 100%; margin: 0; padding: 72px 20px; overflow: hidden; }
  .home-section--works .home-section__heading { width: 100%; max-width: 100%; margin: 0 0 38px; text-align: center; }
  .home-section--works .home-section__label,
  .home-section--works .home-section__title,
  .home-section--works .home-section__caption { width: 100%; max-width: 100%; margin-right: auto; margin-left: auto; text-align: center; overflow-wrap: anywhere; }
  .home-section--works .home-section__content,
  .home-works,
  .home-works__viewport { width: 100%; max-width: 100%; min-width: 0; }
  .home-works__viewport { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; touch-action: pan-x pan-y pinch-zoom; }
  .home-works__track { width: auto; min-width: 0; gap: 18px; }
  .home-work { flex: 0 0 64%; width: 64%; max-width: 64%; min-width: 0; }
  .home-work__link,
  .home-work__picture,
  .home-work__placeholder,
  .home-work__picture img { width: 100%; max-width: 100%; }
  .home-work__body { padding-top: 18px; }
  .home-works__controls { display: none; }
  .home-works__more { margin-top: 28px; }
  .home-works__more .home-works__more-button { min-height: 54px; }
  .home-latest__grid { display: flex; gap: 18px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; touch-action: pan-x pan-y pinch-zoom; -webkit-overflow-scrolling: touch; }
  .home-latest__grid::-webkit-scrollbar { display: none; }
  .home-latest__card { flex: 0 0 64%; width: 64%; max-width: 64%; scroll-snap-align: start; }
  .home-latest__body { padding-top: 17px; }
  .home-contact { min-height: 520px; padding: 80px 24px; }
  .home-contact__title { font-size: var(--section-title-size-sp, 26px); }
  .tabeo-walking-cloud {
    --cloud-shift-negative: -50px;
    --cloud-shift-positive: 50px;
    width: 120px;
    opacity: .66;
  }
  .tabeo-walking-cloud--lower-left { top: calc(18% - 60px); left: 8px; }
  .tabeo-walking-cloud--upper-right { top: calc(13% - 60px); right: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .tabeo-reveal,
  .tabeo-reveal--service-left,
  .tabeo-reveal--service-right,
  .tabeo-reveal--news-card,
  .tabeo-reveal--media-left,
  .tabeo-reveal--media-right {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    transition: none !important;
  }
  .home-media-text__picture img,
  .home-card,
  .home-card__picture img,
  .home-work__picture img,
  .home-latest__image { transition: none; }
  .home-section__background { transform: none !important; }
  .tabeo-walking-cloud { animation: none !important; }
  .tabeo-background-motion .home-section__background-picture img,
  .tabeo-motion-section .home-card__picture img,
  .tabeo-motion-section .home-latest__image { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
  .home-section--works { min-height: 100svh; }
  .home-section--works .home-section__reveal { clip-path: none !important; }
  .home-section--works .home-section__heading,
  .home-section--works .home-works__viewport,
  .home-section--works .home-works__controls,
  .home-section--works .home-works__more { opacity: 1 !important; transform: none !important; transition: none !important; }
}
