@charset "UTF-8";

:root { --color-bg-light: #dff7fa; --color-main: #0aa34f; --color-main-dark: #00652f; --color-text: #111; --color-white: #fff; --content-width: 75rem; --font-en: "Figtree", sans-serif; --font-ja: "Noto Sans JP", sans-serif; --page-content-width: 87.5rem; --radius-pill: 100vh; --transition: 0.3s ease; --wide-width: 96rem; }
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; scroll-behavior: smooth; }
body { background: var(--color-white); color: var(--color-text); font-family: var(--font-ja); font-size: 1rem; line-height: 1.8; }
img, svg { display: block; height: auto; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
h1, h2, h3, h4, p, ul, li { margin: 0; }

@keyframes scroll {
    0% { opacity: 0; top: -.3125rem; }
    15% { opacity: 1; top: 0; }
    85% { opacity: 1; top: 8.125rem; }
    100% { opacity: 0; top: 8.4375rem; }
}
@keyframes loading-line {
    0% { stroke-dashoffset:5000; }
    100% { stroke-dashoffset:0; }
}
@keyframes loading-fill {
    0% { fill:transparent; }
    100% { fill:var(--color-main-dark); }
}
@keyframes pageTopArrow {
    0% { opacity: 1; transform: translateY(0) rotate(45deg) translate(0.125rem, 0.125rem); }
    35% { opacity: 0; transform: translateY(-0.45rem) rotate(45deg) translate(0.125rem, 0.125rem); }
    36% { opacity: 0; transform: translateY(0.45rem) rotate(45deg) translate(0.125rem, 0.125rem); }
    100% { opacity: 1; transform: translateY(0) rotate(45deg) translate(0.125rem, 0.125rem); }
}
@keyframes logoFlash {
    0% { opacity: 1; transform: scale(1); }
    45% { opacity: 0.35; transform: scale(1.02); }
    100% { opacity: 1; transform: scale(1); }
}
@keyframes showText {
    to { opacity: 1; transform: translateY(0); }
}
@keyframes recruitGalleryLoop {
    to { transform: translateX(-50%) }
}


.l-inner { margin-inline: auto; width: min(calc(100% - clamp(2rem, 6vw, 7.5rem)), var(--content-width)); }
.l-header { padding: 1.25rem; position: relative; width: 100%; z-index: 1000; }
.l-header__inner { align-items: center; background: var(--color-white); border-radius: .25rem; display: flex; justify-content: space-between; margin-inline: auto; padding: 0 clamp(1.5rem, 2.5vw, 2.5rem); width: 100%; }
.l-header__logo { display: block; flex: 0 0 auto; }
.l-header__logo img { width: 13.75rem; }
.l-header__logo:hover img { animation: logoFlash 0.3s ease; }
.l-header__right { align-items: center; display: flex; gap: clamp(1.25rem, 2vw, 2.5rem); margin-left: auto; }
.l-header__nav { margin-left: auto; }
.l-header .wp-block-navigation__container { align-items: center; display: flex; gap: clamp(1rem, 1.5vw, 1.875rem); }
.l-header .wp-block-navigation-item__content { font-weight: 700; position: relative; white-space: nowrap; }
.l-header .wp-block-navigation-item__content::after { background: var(--color-main); bottom: 0; content: ""; height: 1px; left: 0; position: absolute; right: 0; transform: scaleX(0); transform-origin: right center; transition: transform var(--transition); }
.l-header .wp-block-navigation-item__content:hover::after { transform: scaleX(1); transform-origin: left center; }
.l-header__recruit a { background: var(--color-main); border-radius: var(--radius-pill); display: grid !important; font-size: clamp(0.8125rem, 0.76rem + 0.12vw, 0.9375rem); font-weight: 700; height: 3.5rem; overflow: hidden; place-items: center; position: relative; white-space: nowrap; width: 10rem; }
.l-header__recruit a::before { background-color: rgba(0,0,0,.5); content: ""; display: block; height: 100%; left: -100%; mix-blend-mode: overlay; position: absolute; transition: all .4s ease; width: 100%; }
.l-header__recruit a:hover::before { left: 0; }
.l-header__recruit a span { color: var(--color-white); }
.l-header__recruit .wp-block-navigation-item__content:hover::after { content: none; }
.l-header.is-fixed { left: 0; position: fixed; right: 0; top: 0; transform: translateY(-120%); transition: none; visibility: hidden; }
.l-header.is-fixed.is-ready { transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1); visibility: visible; }
.l-header.is-fixed.is-ready.is-show { transform: translateY(0); }
.l-main { min-height: 50vh; }
.l-page { position: relative; z-index: 1; }
.l-page-wrap { overflow: clip; position: relative; }
.l-page-wrap::before { background: url("../images/bg-page.svg") left top / 150% auto no-repeat; content: ""; height: 100%; pointer-events: none; position: absolute; right: 0; top: 0; z-index: 0; }
.l-footer { background: var(--color-main-dark); color: var(--color-white); padding: clamp(4.5rem, 6vw, 6rem) clamp(1.5rem, 7vw, 7rem); position: relative; }
.l-footer__curve { left: 0; position: absolute; right: 0; width: 100%; }
.l-footer__curve svg { display: block; height: 100%; width: 100%; }
.l-footer__curve path { fill: var(--color-main-dark); }
.l-footer__inner { align-items: flex-start; display: flex; justify-content: space-between; margin-inline: auto; max-width: var(--wide-width); position: relative; width: 100%; z-index: 1; }
.l-footer__info { padding-top: clamp(2rem, 4vw, 4rem); width: 50%; }
.l-footer__logo { display: inline-block; margin-bottom: 1.75rem; }
.l-footer__logo img { display: block; height: auto; width: 16.25rem; }
.l-footer__address { font-weight: 600; letter-spacing: 0.03em; line-height: 1.4; }
.l-footer__map { background: var(--color-white); border-radius: var(--radius-pill); color: var(--color-main); display: inline-block; font-family: var(--font-en); font-size: 0.95rem; font-weight: 700; margin-left: 1rem; min-width: 6rem; padding: 0.3rem 1.25rem; text-align: center; }
.l-footer__map:hover { opacity: 0.75; }
.l-footer__copy { font-family: var(--font-en); font-size: 0.875rem; letter-spacing: 0.03em; margin: 2.75rem 0 0; }
.l-footer__nav { display: grid; gap: clamp(4rem, 6vw, 7rem); grid-template-columns: repeat(2, auto); padding-top: clamp(1rem, 2vw, 2rem); }
.l-footer__nav-col { display: flex; flex-direction: column; gap: 1rem; }
.l-footer__nav a { color: var(--color-white); font-size: 1.125rem; font-weight: 700; line-height: 1.4; text-decoration: none; transition: color var(--transition); }
.l-footer__nav a:hover { color: var(--color-main); }
.l-home { position: relative; }
.l-home__main { position: relative; }

.c-button { align-items: center; background: var(--color-main); border-radius: var(--radius-pill); color: var(--color-white); display: inline-flex; font-weight: 700; gap: 1rem; justify-content: space-between; overflow: hidden; padding: 0 2em; position: relative; }
.c-button span { position: relative; transition: all var(--transition); z-index: 1; }
.c-button::before { background-color: rgba(0,0,0,.5); content: ""; display: block; height: 100%; left: -100%; mix-blend-mode: overlay; position: absolute; transition: left var(--transition);; width: 100%; }
.c-button:hover span + span { transform: translateX(.5em); }
.c-button:hover::before { left: 0; }
.c-button__white { background: var(--color-white); color: var(--color-main-dark); }
.c-button__white::before { background: var(--color-main-dark); mix-blend-mode: normal; }
.c-button__white:hover { color: var(--color-white); }
.c-content { width: 100%; }
.c-content > * { margin-block-end: 0; margin-block-start: 0; }
.c-content > * + * { margin-top: clamp(1.5rem, 2vw, 2rem); }
.c-heading { font-size: clamp(1.75rem, 2.5vw, 2.75rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.5; }
.c-subheading { font-size: clamp(1.25rem, 1.7vw, 1.75rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.6; }
.c-lead { font-size: clamp(1.125rem, 1.4vw, 1.375rem); font-weight: 700; letter-spacing: 0.04em; line-height: 1.9; }
.c-text { font-size: 1rem; font-weight: 400; letter-spacing: 0.03em; line-height: 2; }
.c-note { font-size: 0.8125rem; line-height: 1.8; }
.c-image { margin: 0; }
.c-image img { height: auto; width: 100%; }
.c-table { border-collapse: collapse; font-size: 0.9375rem; line-height: 1.8; width: 100%; }
.c-table th, .c-table td { border-bottom: 1px solid rgb(0 0 0 / 15%); padding: 1.25rem 1rem; text-align: left; vertical-align: top; }
.c-table th { font-weight: 700; width: 25%; }
.c-page-top { align-items: center; background: var(--color-main); border-radius: 50%; bottom: 2rem; display: flex; height: 3.5rem; justify-content: center; opacity: 0; overflow: hidden; pointer-events: none; position: fixed; right: 2rem; transform: translateY(1rem); transition: opacity var(--transition), transform var(--transition); width: 3.5rem; z-index: 900; }
.c-page-top.is-show { opacity: 1; pointer-events: auto; transform: translateY(0); }
.c-page-top__arrow { border-left: 2px solid var(--color-white); border-top: 2px solid var(--color-white); display: block; height: 0.75rem; transform: rotate(45deg) translate(0.125rem, 0.125rem); width: 0.75rem; }
.c-page-top:hover .c-page-top__arrow { animation: pageTopArrow 0.55s ease forwards; }
.c-section-heading { align-items: center; display: flex; font-weight: 800; gap: 0.875rem; letter-spacing: 0.04em; line-height: 1.5; margin: 0 0 clamp(2rem, 4vw, 4rem); }
.c-section-heading__mark { background: var(--color-main); border-radius: 50%; display: block; height: 0.5rem; width: 0.5rem; }
.c-section-lead { font-size: clamp(1.25rem, 1.5vw, 1.5rem); font-weight: 700; line-height: 1.8; max-width: var(--page-content-width); }
.grecaptcha-badge { visibility: hidden; }

html.is-loading, body.is-loading { overflow:hidden; }
.p-loading { align-items:center; background:#fff; display:flex; height:100%; justify-content:center; left:0; position:fixed; top:0; width:100%; z-index:99999; }
.p-loading__logo { width: clamp(5rem, 8vw, 7.5rem); }
.p-loading__logo svg { display:block; height:auto; overflow:visible; width:100%; }
.p-loading__path { animation:loading-line 1.4s ease forwards, loading-fill 0.2s ease .8s forwards; fill:transparent; stroke:var(--color-main-dark); stroke-dasharray:5000; stroke-dashoffset:5000; stroke-linejoin:round; stroke-width:2; }
.p-loading.is-hide { opacity:0; pointer-events:none; transition:opacity 0.7s ease; }
body.is-loaded .p-home-mv { opacity:1; transform:translateY(0); transition:opacity 0.8s ease, transform 0.8s ease; }
.p-home-mv__visual { overflow: hidden; position: relative; }
.p-home-mv__slider { height: 100%; inset: 0; overflow: hidden; position: absolute; width: 100%; z-index: 0; }
.p-home-mv__slider canvas { display: block; height: 100%; width: 100%; }
.p-home-mv__fallback { display: block; height: 100%; object-fit: cover; width: 100%; }
.p-home-mv__slider.is-webgl .p-home-mv__fallback { display: none; }
.p-home-mv__copy { color: var(--color-white); position: absolute; text-align: right; text-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.4); z-index: 1; }
.p-home-mv__en { font-family: var(--font-en); font-size: clamp(1.25rem, 2vw, 2.25rem); font-weight: 900; }
.p-home-mv__title { font-size: clamp(3rem, 5vw, 5.5rem); font-weight: 800; line-height: 1.15; }
.p-home-mv__side { align-items: center; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 0.5rem; }
.p-home-mv__side p { font-family: var(--font-en); font-size: 0.875rem; margin: 0 0 1rem; writing-mode: vertical-rl; }
.p-home-mv__scroll { background: #afafaf; height: 8.75rem; position: relative; width: 1px; }
.p-home-mv__scroll::after { animation: scroll 3s infinite normal; background: var(--color-main); border-radius: 50%; bottom: -0.25rem; content: ""; height: 0.5rem; left: 50%; position: absolute; transform: translateX(-50%); width: 0.5rem; }
.p-home-about { overflow: hidden; padding: clamp(5rem, 7vw, 8rem) clamp(1.5rem, 5vw, 5rem); position: relative; }
.p-home-about__inner { margin-inline: auto; max-width: var(--wide-width); position: relative; width: 100%; }
.p-home-about__content { max-width: 37rem; }
.p-home-about__visual { bottom: 0; position: absolute; right: 0; }
.p-home-about__water { bottom: 0; height: auto; position: absolute; right: 0; width: 100%; }
.p-home-about__pipe { height: auto; max-width: 860px; opacity: 0; position: absolute; right: 0; top: 40%; transform: translate(35%, -75%); transition: opacity 1s ease, transform 1.4s cubic-bezier(0.22, 1, 0.36, 1); width: 81.25%; will-change: opacity, transform; }
.p-home-about.is-show .p-home-about__pipe { opacity: 1; transform: translate(0, -50%); }
.p-home-about__en { font-family: var(--font-en); font-size: clamp(2.75rem, 4vw, 4.5rem); font-weight: 800; line-height: 1; }
.p-home-about__title { font-size: 1rem; font-weight: 700; line-height: 1.6; margin: 1rem 0 0; }
.p-home-about__lead { font-size: clamp(1.75rem, 2.5vw, 2.75rem); font-weight: 800; letter-spacing: 0.04em; line-height: 1.5; margin: clamp(2rem, 3vw, 3rem) 0 0; }
.p-home-about__text { font-size: 1rem; line-height: 2; margin: clamp(1.5rem, 2vw, 2rem) 0 0; }
.p-home-about__button { margin-top: clamp(2rem, 3vw, 3rem); }
.p-home-about__image img { border-radius: clamp(1rem, 2vw, 2rem); height: auto; width: 100%; }
.p-home-business { background: var(--color-main); color: var(--color-white); overflow: hidden; position: relative; }
.p-home-business::before { background: url("../images/top-business-bg.jpg") center / cover no-repeat; content: ""; inset: 0; mix-blend-mode: multiply; opacity: .24; position: absolute; z-index: 0; }
.p-home-business__media { border-radius: 0 clamp(1rem, 2vw, 2rem) clamp(1rem, 2vw, 2rem) 0; min-height: 100%; overflow: hidden; position: relative; z-index: 1; }
.p-home-business__image { height: 100%; inset: 0; object-fit: cover; opacity: 0; position: absolute; transition: opacity 0.45s ease; width: 100%; }
.p-home-business__image.is-active { opacity: 1; }
.p-home-business__content { align-self: center; display: flex; flex-direction: column; position: relative; z-index: 2; }
.p-home-business__heading { display: flex; }
.p-home-business__en { font-family: var(--font-en); font-size: clamp(3rem, 5vw, 5.25rem); font-weight: 800; line-height: 1; }
.p-home-business__title { font-size: clamp(1.5rem, 2.3vw, 2.5rem); font-weight: 700; line-height: 1.4; }
.p-home-business__lead { font-size: 1.125rem; font-weight: 700; line-height: 1.8; }
.p-home-business__item { align-items: center; background: transparent; border: 0; border-bottom: 1px solid rgb(255 255 255 / 80%); color: rgb(255 255 255 / 70%); cursor: pointer; display: grid; gap: clamp(1rem, 2vw, 2rem); grid-template-columns: 2rem 3rem 1fr; line-height: 1; padding: clamp(1.25rem, 2vw, 2rem) 0; text-align: left; transition: color var(--transition); width: 100%; }
.p-home-business__item.is-active, .p-home-business__item:hover { color: var(--color-white); }
.p-home-business__arrow { color: #f0e900; font-size: 1.75rem; opacity: 0; transform: translateX(0.5rem); transition: opacity var(--transition), transform var(--transition); }
.p-home-business__item.is-active .p-home-business__arrow, .p-home-business__item:hover .p-home-business__arrow { opacity: 1; transform: translateX(0); }
.p-home-business__number { font-family: var(--font-en); font-size: clamp(1.75rem, 2.5vw, 2.5rem); font-weight: 800; }
.p-home-business__name { font-size: clamp(1.375rem, 2vw, 2.125rem); font-weight: 700; }
.p-home-business__button { margin-top: 1.5rem; }
.p-home-flow { background: var(--color-white); display: flex; flex-direction: column; overflow: hidden; position: relative; }
.p-home-flow > * { position: relative; z-index: 1; }
.p-home-flow-bg-wrap { height: 100%; inset: 0; pointer-events: none; position: absolute; z-index: 0; }
.p-home-flow-bg { height: 100%; overflow: hidden; width: 100%; }
.p-home-flow-bg__image { clip-path: inset(0 0 calc(100% - var(--bg-progress, 0%)) 0); display: block; height: auto; max-width: none; width: 150%; }

.p-home-flow__title { font-weight: 700; line-height: 1; margin: 1rem 0 0; }
.p-home-works__en { font-family: var(--font-en); font-size: clamp(3rem, 4vw, 4.5rem); font-weight: 800; line-height: 1; }
.p-home-works__text { font-size: 1rem; line-height: 2; margin: clamp(1.5rem, 2vw, 2rem) 0 0; }
.p-home-works__button { margin-top: clamp(2rem, 3vw, 3rem); }
.p-home-works__image img { height: 100%; object-fit: cover; width: 100%; }
.p-home-area__en { font-family: var(--font-en); font-size: clamp(3rem, 4vw, 4.5rem); font-weight: 800; line-height: 1; }
.p-home-area__text { font-size: 1rem; line-height: 2; margin: clamp(1.5rem, 2vw, 2rem) 0 0; }
.p-home-area__button { margin-top: clamp(2rem, 3vw, 3rem); }
.p-home-area__map img { height: auto; margin-inline: auto; max-width: clamp(22rem, 38vw, 38rem); width: 100%; }
.p-home-news__en { font-family: var(--font-en); font-size: clamp(3rem, 5vw, 5rem); font-weight: 800; line-height: 1; }
.p-home-news__list { border-bottom: 1px solid rgb(0 0 0 / 18%); padding: 0; }
.p-home-news__item { border-top: 1px solid rgb(0 0 0 / 18%); position: relative; }
.p-home-news__date { color: var(--color-main); font-family: var(--font-en); }
.p-home-news__item-title { font-size: clamp(1rem, 1.2vw, 1.125rem); font-weight: 500; line-height: 1.7; margin: 0.5rem 0 0; }
.p-home-news__item-title a { display: block; transition: color var(--transition); }
.p-home-news__item-title a::after { color: var(--color-main); content: "→"; position: absolute; top: 50%; transform: translateY(-50%); transition: right var(--transition); }
.p-home-news__item-title a:hover { color: var(--color-main); }
.p-home-news__item-title a:hover::after { right: 1.25rem; }
.p-home-news__button { margin-top: clamp(2rem, 3vw, 3rem); }
.p-news-list { padding: 0 clamp(2rem, 7vw, 7.5rem) clamp(8rem, 12vw, 12rem); position: relative; z-index: 1; }
.p-news-list__query { border-bottom: 1px solid rgb(0 0 0 / 18%);  margin-inline: auto; max-width: var(--content-width); }
.p-news-list__items { padding: 0; }
.p-news-list__item { border-top: 1px solid rgb(0 0 0 / 18%); position: relative; }
.p-news-list__date { color: var(--color-main); font-family: var(--font-en); font-size: 0.875rem; }
.p-news-list__title { font-size: clamp(1rem, 1.2vw, 1.125rem); font-weight: 500; line-height: 1.7; margin: 0.5rem 0 0; }
.p-news-list__title a { display: block; transition: color var(--transition); }
.p-news-list__title a::after { color: var(--color-main); content: "→"; position: absolute; top: 50%; transform: translateY(-50%); transition: right var(--transition); }
.p-news-list__title a:hover { color: var(--color-main); }
.p-news-list__title a:hover::after { right: 1.25rem; }
.p-news-list__pagination { gap: 1rem; margin-top: clamp(3rem, 5vw, 5rem); }
.p-news-list__pagination a, .p-news-list__pagination span { align-items: center; border: 1px solid rgb(0 0 0 / 15%); border-radius: 50%; display: inline-flex; height: 2.75rem; justify-content: center; min-width: 2.75rem; padding: 0 0.75rem; }
.p-news-single__hero { padding: clamp(8rem, 11vw, 11rem) clamp(2rem, 7vw, 7.5rem) clamp(4rem, 6vw, 6rem); position: relative; z-index: 1; }
.p-news-single__body { margin-inline: auto; max-width: var(--content-width); padding: 0 clamp(2rem, 7vw, 7.5rem) clamp(8rem, 12vw, 12rem); position: relative; z-index: 1; }
.p-news-single__date { color: var(--color-main); font-family: var(--font-en); font-size: 0.875rem; }
.p-news-single__title { font-size: clamp(1.75rem, 2.5vw, 2.75rem); font-weight: 700; line-height: 1.5; margin: 1rem 0 0; }
.p-news-single__content { font-size: 1rem; line-height: 2; margin-top: clamp(2rem, 3vw, 3rem); }
.p-news-single__content > * { margin-block-end: 0; margin-block-start: 0; }
.p-news-single__content > * + * { margin-top: 1.5rem; }
.p-news-single__back { margin-top: clamp(3rem, 5vw, 5rem); }

.p-page-hero { margin-inline: auto; padding: clamp(8rem, 11vw, 11rem) clamp(2rem, 7vw, 7.5rem) clamp(5rem, 8vw, 8rem); position: relative; width: 100%; z-index: 1; }
.p-page-hero__en { font-family: var(--font-en); font-size: clamp(3rem, 5vw, 5.25rem); font-weight: 800; line-height: 1; visibility: hidden; }
.p-page-hero__en.is-ready { visibility: visible; }
.p-page-hero__en span { animation: showText 0.4s cubic-bezier(0.22, 1, 0.36, 1) forwards; display: inline-block; opacity: 0; transform: translateY(0.75rem); }
.p-page-hero__title { font-size: 1.25rem; font-weight: 700; line-height: 1.6; margin: 1.25rem 0 0; }
.p-page-content { margin-inline: auto; padding: 0 clamp(2rem, 7vw, 7.5rem) clamp(8rem, 12vw, 12rem); position: relative; width: 100%; z-index: 1; }
.p-page-content .entry-content { display: flex; flex-direction: column; }
.p-page-content .entry-content > *, .p-page-content > .wp-block-post-content { width: 100%; }
.p-page-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { margin: 0 auto; max-width: var(--page-content-width); }
.p-recruit-cta { margin-inline: auto; padding: 0 clamp(2rem, 7vw, 7.5rem) clamp(5rem, 8vw, 8rem); position: relative; width: 100%; z-index: 2; }
.p-recruit-cta__inner { border-radius: 0.5rem; display: flex; margin-inline: auto; max-width: var(--page-content-width); overflow: hidden; }
.p-recruit-cta__content { background: var(--color-main); color: var(--color-white); display: flex; flex-direction: column; height: 100%; justify-content: flex-start; position: relative; }
.p-recruit-cta__content::after { background: var(--color-main); bottom: 0; clip-path: polygon(0 0, 100% 0, 41% 100%, 0 100%); content: ""; pointer-events: none; position: absolute; right: clamp(-7rem, -6vw, -4rem); top: 0; width: clamp(7rem, 10vw, 11rem); z-index: 2; }
.p-recruit-cta__en { font-family: var(--font-en); font-size: clamp(2.25rem, 3.5vw, 4rem); font-weight: 800; line-height: 1; position: relative; z-index: 3; }
.p-recruit-cta__title { font-size: clamp(1.5rem, 2vw, 2.25rem); font-weight: 700; line-height: 1.5; position: relative; z-index: 3; }
.p-recruit-cta__text { position: relative; z-index: 3; }
.p-recruit-cta__button { z-index: 3; }
.p-recruit-cta__image { background: url(../images/pic-recruit.jpg) center / cover no-repeat; overflow: hidden; }
.p-about-philosophy { margin-inline: auto; }
.p-about-philosophy__heading { font-size: clamp(2rem, 3.3vw, 3.5rem); font-weight: 800; letter-spacing: 0.04em; line-height: 1.5; margin: 0; }
.p-about-philosophy__text { font-size: clamp(1rem, 1.25vw, 1.25rem); font-weight: 700; letter-spacing: 0.03em; margin: clamp(2rem, 3vw, 3rem) 0 0; }
.p-about-message { background: var(--color-white); border: 1px solid var(--color-main); border-radius: 1rem; margin-inline: auto; padding: 4rem; }
.p-about-message__heading { font-size: clamp(1.5rem, 2vw, 2rem); font-weight: 700; letter-spacing: 0.04em; line-height: 1.5; margin: 0 0 clamp(2rem, 3vw, 3rem); text-align: center; }
.p-about-message__body { margin-inline: auto; max-width: 52rem; }
.p-about-message__body p { font-size: clamp(0.9375rem, 1.1vw, 1.0625rem); letter-spacing: 0.03em; line-height: 2; margin: 0; }
.p-about-message__body p + p { margin-top: 1.75rem; }
.p-about-message__name { font-size: clamp(0.9375rem, 1.1vw, 1.0625rem); font-weight: 500; letter-spacing: 0.03em; margin: 2rem auto 0; max-width: 52rem; text-align: right; }
.p-about-message__name strong { font-size: 1.5em; }
.p-about-strength__list { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.p-about-strength__item { align-items: center; background-position: center; background-size: cover; border: 1px solid var(--color-main); border-radius: 0.625rem; display: flex; justify-content: center; min-height: clamp(16rem, 23vw, 21rem); overflow: hidden; padding: clamp(2rem, 4vw, 3rem); position: relative; }
.p-about-strength__item::before { background: rgb(255 255 255 / 80%); content: ""; inset: 0; position: absolute; }
.p-about-strength__item--01 { background-image: url("../images/about-strength-01.jpg"); }
.p-about-strength__item--02 { background-image: url("../images/about-strength-02.jpg"); }
.p-about-strength__item--03 { background-image: url("../images/about-strength-03.jpg"); }
.p-about-strength__item--04 { background-image: url("../images/about-strength-04.jpg"); }
.p-about-strength__content { align-items: center; display: flex; flex-direction: column; position: relative; text-align: center; width: 100%; z-index: 1; }
.p-about-strength__number { color: var(--color-main); font-family: var(--font-en); font-size: clamp(1.75rem, 2.5vw, 2.5rem); font-weight: 700; letter-spacing: 0.02em; line-height: 1; }
.p-about-strength__title { background: var(--color-main); color: var(--color-white); font-size: clamp(1rem, 1.3vw, 1.25rem); font-weight: 700; letter-spacing: 0.04em; line-height: 1.4; margin: 1.5rem 0 1.25rem; min-width: 10rem; padding: 0.5rem 1.5rem; }
.p-about-strength__text { font-weight: 600; letter-spacing: 0.02em; line-height: 1.8; margin: 0; }
.p-business-lead { font-size: clamp(1.5rem, 2.2vw, 2rem); font-weight: 700; letter-spacing: 0.04em; line-height: 1.7; max-width: var(--page-content-width); }
.p-business-list { margin-inline: auto; max-width: var(--page-content-width); }
.p-business-item { align-items: center; display: grid; gap: clamp(2.5rem, 5vw, 5rem); grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
.p-business-item + .p-business-item { margin-top: clamp(4rem, 7vw, 7rem); }
.p-business-item__image { border-radius: 0.75rem; overflow: hidden; }
.p-business-item__image img { display: block; height: auto; width: 100%; }
.p-business-item__content { align-self: center; }
.p-business-item__number { color: var(--color-main); display: block; font-family: var(--font-en); font-size: clamp(1.75rem, 2.4vw, 2.5rem); font-weight: 900; line-height: 1; }
.p-business-item__title { font-size: clamp(2rem, 3vw, 3rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.4; margin: clamp(1.5rem, 2vw, 2rem) 0 clamp(1.5rem, 2vw, 2rem); }
.p-business-item__text { font-size: clamp(1rem, 1.1vw, 1.125rem); letter-spacing: 0.03em; line-height: 2; margin: 0; }
.p-business-button { display: flex; gap: 1.5rem; justify-content: center; }
.p-business-button__link { min-width: clamp(15rem, 22vw, 20rem); }
.p-area-content { margin-inline: auto; max-width: var(--page-content-width); }
.p-area-map { border-radius: .75rem; overflow: hidden; width: 100%; }
.p-area-map img { display: block; height: auto; width: 100%; }
.p-area-prefectures { margin-top: clamp(3rem, 5vw, 5rem); }
.p-area-prefecture + .p-area-prefecture { margin-top: 3rem; }
.p-area-prefecture__heading { font-size: clamp(1rem, 1.1vw, 1.125rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.5; margin: 0 0 1.5rem; }
.p-area-prefecture__list { font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 1.8; list-style: none; margin: 0; padding: 0; }
.p-area-prefecture__list li { padding-left: 1em; position: relative; }
.p-area-prefecture__list li::before { content: "・"; left: 0; position: absolute; top: 0; }
.p-area-prefecture__list--saitama { column-count: 3; column-gap: clamp(2rem, 5vw, 5rem); max-width: 45rem; }
.p-area-prefecture__list--saitama li { break-inside: avoid; }
.p-area-button { text-align: center; }
.p-area-button__link { min-width: clamp(15rem, 22vw, 20rem); }
.p-works-gallery { margin-inline: auto; max-width: var(--page-content-width); }
.p-works-gallery__list { display: grid; gap: clamp(2.5rem, 4vw, 4rem) clamp(2rem, 4vw, 4rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.p-works-gallery__figure { aspect-ratio: 16 / 9; border-radius: 0.75rem; margin: 0; overflow: hidden; }
.p-works-gallery__figure img { display: block; height: 100%; object-fit: cover; width: 100%; }
.p-works-gallery__title { font-size: clamp(1rem, 1.2vw, 1.125rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.5; margin: 1rem 0 0.25rem; }
.p-works-gallery__text { letter-spacing: 0.03em; line-height: 1.8; margin: 0; }
.p-works-history { max-width: var(--page-content-width); }
.p-works-history__list { display: flex; flex-direction: column; gap: clamp(2.5rem, 4vw, 4rem); }
.p-works-history__item { align-items: flex-start; display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: 9rem minmax(0, 1fr); }
.p-works-history__year { background: var(--color-main); color: var(--color-white); font-family: var(--font-en); font-size: 1.125rem; font-weight: 700; letter-spacing: 0.03em; padding: 0.65rem 1rem; text-align: center; }
.p-works-history__works { list-style: none; margin: 0; padding: 0; }
.p-works-history__works li { font-size: clamp(1rem, 1.1vw, 1.125rem); letter-spacing: 0.03em; line-height: 1.8; padding-left: 1em; position: relative; }
.p-works-history__works li::before { content: "・"; left: 0; position: absolute; top: 0; }
.p-company-layout { display: grid; gap: clamp(3rem, 6vw, 6rem); grid-template-columns: minmax(0, 1fr) 14rem; margin-inline: auto; max-width: var(--page-content-width); }
.p-company-nav { align-self: start; display: flex; flex-direction: column; gap: 0.5rem; padding-top: 1.5rem; position: sticky; top: 8rem; }
.p-company-nav a { color: var(--color-text); font-weight: 500; position: relative; transition: color var(--transition); }
.p-company-nav a::before { background: var(--color-text); border-radius: 50%; content: ""; height: 0.3rem; left: -1rem; position: absolute; top: 50%; transform: translateY(-50%); transition: background var(--transition); width: 0.3rem; }
.p-company-nav a.is-active { color: var(--color-main); }
.p-company-nav a.is-active::before { background: var(--color-main); }
.p-company-overview__row { display: grid; grid-template-columns: 12rem minmax(0, 1fr); margin: 0; }
.p-company-overview__row dt { border-bottom: 1px solid var(--color-main); font-size: clamp(1rem, 1.1vw, 1.125rem); font-weight: 700; padding: 1.5rem 1rem; }
.p-company-overview__row dd { font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 1.8; margin: 0; }
.p-company-overview__map { background: var(--color-main); border-radius: var(--radius-pill); color: var(--color-white); display: inline-grid; font-family: var(--font-en); font-size: 0.75rem; font-weight: 600; height: 2rem; margin-left: 1.5rem; overflow: hidden; padding: 0 1rem; place-content: center; position: relative; text-align: center; width: 7rem; }
.p-company-overview__map::before { background-color: rgba(0,0,0,.5); content: ""; display: block; height: 100%; left: -100%; mix-blend-mode: overlay; position: absolute; transition: left var(--transition);; width: 100%; }
.p-company-overview__map:hover::before { left: 0; }
.p-company-overview__business { list-style: none; margin: 0; padding: 0; }
.p-company-overview__business li::before { content: "・"; }
.p-company-history { position: relative; }
.p-company-history::before { background: rgb(10 163 79 / 35%); bottom: 0.75rem; content: ""; left: 8.4rem; position: absolute; top: 0.75rem; width: 1px; }
.p-company-history__item { align-items: flex-start; display: grid; font-size: clamp(1rem, 1.1vw, 1.125rem); gap: 2.5rem; grid-template-columns: 7rem minmax(0, 1fr); min-height: 2.75rem; position: relative; }
.p-company-history__item::before { background: var(--color-main); border-radius: 50%; content: ""; height: 0.5rem; left: 8.15rem; position: absolute; top: 0.6rem; width: 0.5rem; }
.p-company-history__date { line-height: 1.7; }
.p-company-history__item p { line-height: 1.7; margin: 0; }
.p-company-qualification { column-count: 2; column-gap: clamp(3rem, 6vw, 6rem); font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 1.9; list-style: none; margin: 0; padding: 0; }
.p-company-qualification li { break-inside: avoid; }
.p-company-qualification li::before { content: "・"; }
.p-company-awards { display: flex; flex-direction: column; gap: clamp(3rem, 5vw, 5rem); }
.p-company-awards__item { align-items: flex-start; display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: 9rem minmax(0, 1fr); }
.p-company-awards__label { background: var(--color-main); color: var(--color-white); font-size: clamp(1rem, 1.1vw, 1.125rem); font-weight: 700; padding: 0.65rem 1rem; text-align: center; }
.p-company-awards__list { font-size: clamp(1rem, 1.1vw, 1.125rem); list-style: none; margin: 0; padding: 0; }
.p-company-awards__list li { line-height: 1.8; padding-left: 1em; position: relative; }
.p-company-awards__list li + li { margin-top: 0.75rem; }
.p-company-awards__list li::before { content: "・"; left: 0; position: absolute; top: 0; }
.p-company-awards__list strong { display: block; font-weight: 400; }
.p-company-awards__list span { display: block; }
.p-company-iso__data { margin: 2rem 0 0; max-width: 40rem; }
.p-company-iso__data-row { border-bottom: 1px solid rgb(0 0 0 / 15%); display: grid; grid-template-columns: 8rem minmax(0, 1fr); margin: 0; }
.p-company-iso__data-row dt { font-size: clamp(1rem, 1.1vw, 1.125rem); font-weight: 700; padding: 1rem 0; }
.p-company-iso__data-row dd { font-size: clamp(1rem, 1.1vw, 1.125rem); margin: 0; padding: 1rem 0; }
.p-company-iso__policy { display: grid; gap: clamp(2rem, 4vw, 4rem); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(3rem, 5vw, 5rem); }
.p-company-iso__policy-item { border-top: 2px solid var(--color-main); padding-top: 1.5rem; }
.p-company-iso__policy-title { font-size: clamp(1.25rem, 1.5vw, 1.5rem); font-weight: 700; margin: 0 0 1rem; }
.p-company-iso__policy-item p { font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 2; margin: 0; }
.p-company-iso__text { font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 2; margin: 0; }
.p-company-iso__marks { align-items: flex-end; display: flex; gap: 2rem; margin-top: 2.5rem; }
.p-company-iso__msa { text-align: center; }
.p-company-iso__msa img { display: block; height: auto; margin-inline: auto; width: 7rem; }
.p-company-iso__msa p { font-family: var(--font-en); font-size: 0.75rem; line-height: 1.5; margin: 0.5rem 0 0; }
.p-company-iso__jab img { display: block; height: auto; width: 6.5rem; }
.p-company-iso__standard { border-top: 1px solid var(--color-text); font-family: var(--font-en); font-size: 0.875rem; font-weight: 600; margin: 1rem 0 0; padding-top: 0.75rem; text-align: center; width: 15.5rem; }
.p-contact .grecaptcha-badge { visibility: visible; }
.p-contact-lead { font-size: clamp(1rem, 1.3vw, 1.25rem); font-weight: 700; letter-spacing: 0.04em; line-height: 1.8; max-width: var(--page-content-width); }
.p-contact-tel { margin: 0 auto; max-width: var(--content-width); }
.p-contact-heading { font-size: clamp(1rem, 1.3vw, 1.25rem); font-weight: 700; margin: 0 0 2.25rem; }
.p-contact-tel__link { align-items: center; color: var(--color-main); display: inline-flex; font-family: var(--font-en); font-size: clamp(2rem, 3vw, 3rem); font-weight: 700; gap: 0.75rem; letter-spacing: 0.04em; line-height: 1; text-decoration: none; }
.p-contact-tel__icon { fill: currentColor; flex: 0 0 auto; height: 0.9em; width: 0.9em; }
.p-contact-mail { margin-inline: auto; max-width: var(--content-width); }
.p-contact-form__head { align-items: center; border-bottom: 1px solid var(--color-main); display: flex; gap: 1rem; }
.p-contact-form__label { display: block; font-size: clamp(1rem, 1.1vw, 1.125rem); font-weight: 700; }
.p-contact-form__required { background: #d62828; border-radius: 0.25rem; color: var(--color-white); display: grid; font-size: 0.625rem; font-weight: 700; line-height: 1; padding: 0.35rem; place-content: center; }
.p-contact-form input:not([type="submit"]):not([type="checkbox"]), .p-contact-form textarea { background: #f3f3f3; border: 0; border-radius: 0.25rem; font-size: clamp(1rem, 1.1vw, 1.125rem); padding: 0.875rem 1rem; width: 100%; }
.p-contact-form input:not([type="submit"]):not([type="checkbox"]):focus, .p-contact-form textarea:focus { background: #f1fff7; }
.p-contact-form input:not([type="submit"]):not([type="checkbox"]) { max-width: 32rem; }
.p-contact-form textarea { resize: vertical; }
.p-contact-form__privacy .wpcf7-list-item { margin: 0; }
.p-contact-form__submit { margin-top: 2rem; text-align: center; }
.p-contact-form input[type="submit"] { background: var(--color-main); border: 0; border-radius: var(--radius-pill); color: var(--color-white); cursor: pointer; font-size: 1.25rem; font-weight: 700; min-width: 25rem; overflow: hidden; padding: 1.25rem 2rem; transition: background var(--transition); }
.p-contact-form input[type="submit"]:hover { background: #25722c; }
.p-contact-form input[type="submit"]:disabled { background: #ccc; color: #999; }
.p-contact-form__privacy label { align-items: center; display: flex; gap: .5rem; }
.p-contact-form__privacy input { appearance: none; border: 1px solid var(--color-main); border-radius: .25rem; cursor: pointer; height: 1.25rem; position: relative; width: 1.25rem; }
.p-contact-form__privacy input:checked { background-color: var(--color-main);}
.p-contact-form__privacy input:checked::after { border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ""; height: .375rem; left: .1875rem; position: absolute; top: .3125rem; transform: rotate(-45deg); width: .75rem; }
.p-contact-form__privacy span a { color: var(--color-main); }
.p-contact-form__real-submit { display: none; }
.p-contact-form__error { color: #d62828; font-size: 0.875rem; font-weight: 700; margin-top: 1.5rem; text-align: center; }
.p-contact-form input.is-error, .p-contact-form textarea.is-error { outline: 2px solid #d62828; outline-offset: -2px; }
.p-contact-form .wpcf7-acceptance.is-error { color: #d62828; }
.p-contact-form__confirm-button { border: 0; cursor: pointer; }
.p-contact-confirm__lead { font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 2; margin: 0 0 2.5rem; }
.p-contact-confirm__row { display: grid; grid-template-columns: 14rem minmax(0, 1fr); }
.p-contact-confirm__head { border-bottom: 1px solid var(--color-main); font-size: clamp(1rem, 1.1vw, 1.125rem); font-weight: 700; }
.p-contact-confirm__body { font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 1.8; white-space: pre-wrap; }
.p-contact-confirm__buttons { display: flex; gap: 1.5rem; justify-content: center; }
.p-contact-confirm__back { background: #777; border: 0; cursor: pointer; }
.p-contact-confirm__send { border: 0; cursor: pointer; }
.p-contact-confirm__send.is-sending { opacity: 0.5; pointer-events: none; }
.p-recruit-gallery { margin-left: calc(50% - 50vw); overflow: hidden; width: 100vw !important; }
.p-recruit-gallery__track { animation: recruitGalleryLoop 40s linear infinite; display: flex; width: max-content; }
.p-recruit-gallery__group { display: flex; flex: 0 0 auto; gap: 1.25rem; padding-right: 1.25rem; }
.p-recruit-gallery__set { display: flex; flex: 0 0 auto; gap: 1.25rem; height: clamp(18rem, 35vw, 35rem); }
.p-recruit-gallery__large { border-radius: 0.75rem; flex: 0 0 clamp(25rem, 47.5vw, 47.5rem); margin: 0; overflow: hidden; }
.p-recruit-gallery__small { display: grid; flex: 0 0 clamp(13rem, 23.75vw, 23.75rem); gap: 1.25rem; grid-template-rows: repeat(2, 1fr); }
.p-recruit-gallery__small figure { border-radius: 0.75rem; margin: 0; overflow: hidden; }
.p-recruit-gallery img { display: block; height: 100%; object-fit: cover; width: 100%; }
.p-recruit-section-heading { color: #005385; font-size: clamp(1.75rem, 2.8vw, 3rem); font-weight: 800; letter-spacing: 0.04em; line-height: 1.5; margin: 0 0 clamp(2.5rem, 5vw, 5rem); text-align: center; }
.p-recruit-intro { margin-inline: auto; max-width: var(--page-content-width); text-align: center; }
.p-recruit-intro__en { color: #69c7f4; font-family: var(--font-en); font-size: clamp(3rem, 9vw, 9.375rem); font-weight: 800; letter-spacing: 0.02em; line-height: 1; margin: 0 0 clamp(1.75rem, 2.5vw, 2rem); }
.p-recruit-intro__heading { font-size: clamp(1.375rem, 2.2vw, 2.25rem); font-weight: 800; line-height: 1.6; margin: 0 0 clamp(2rem, 5vw, 4rem); }
.p-recruit-intro__text { display: flex; flex-direction: column; font-size: clamp(1rem, 1.25vw, 1.25rem); font-weight: 500; gap: 1.75rem; margin: 0 auto; }
.p-recruit-business { margin-inline: auto; max-width: var(--page-content-width); }
.p-recruit-business__list { display: grid; gap: clamp(1.5rem, 3vw, 3rem); grid-template-columns: repeat(3, 1fr); }
.p-recruit-business__item:nth-child(2) { transform: translateY(2rem); }
.p-recruit-business__item:nth-child(3) { transform: translateY(4rem); }
.p-recruit-business__image { border-radius: 0.5rem; overflow: hidden; position: relative; }
.p-recruit-business__image img { aspect-ratio: 4 / 5; display: block; object-fit: cover; width: 100%; }
.p-recruit-business__title { background: #69c7f4; border-radius: .5rem 0 0 .5rem; color: var(--color-white); font-size: clamp(1.125rem, 1.5vw, 1.375rem); font-weight: 700; position: absolute; right: 0; width: 14rem; z-index: 1; }
.p-recruit-business__text { font-size: clamp(0.9375rem, 1vw, 1rem); line-height: 1.8; margin: 0; }
.p-recruit-points { padding: clamp(2.75rem, 5vw, 5rem) 0; position: relative; }
.p-recruit-points::after { background-color: #005385; border-radius: 1.25rem 0 0 1.25rem; content: ""; height: 100%; margin-right: calc(50% - 50vw); position: absolute; right: 0; top: 0; width: 94vw; }
.p-recruit-points__inner { align-items: center; color: var(--color-white); display: grid; gap: clamp(3rem, 6vw, 6rem); grid-template-columns: minmax(16rem, 0.8fr) minmax(0, 1.8fr); max-width: calc(var(--page-content-width) - clamp(1.25rem, 4vw, 3rem)); padding-left: clamp(1.25rem, 4vw, 3rem); padding-right: clamp(1.25rem, 4vw, 3rem); position: relative; z-index: 1; }
.p-recruit-points__head { align-self: center; }
.p-recruit-points__heading { font-size: clamp(2rem, 3vw, 3rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.7; margin: 0; }
.p-recruit-points__line { display: block; height: auto; margin-top: 0.75rem; width: clamp(12rem, 18vw, 18rem); }
.p-recruit-points__list { width: 100%; }
.p-recruit-points__item { align-items: center; border-bottom: 1px dashed rgb(255 255 255 / 75%); display: grid; gap: clamp(1.5rem, 2.5vw, 2.5rem); grid-template-columns: 4.5rem 1fr; padding: clamp(1.5rem, 2.5vw, 2rem) 0; }
.p-recruit-points__item:first-child { padding-top: 0; }
.p-recruit-points__item:last-child { border-bottom: 0; padding-bottom: 0; }
.p-recruit-points__number { align-items: center; background: var(--color-white); border-radius: 50%; color: #005385; display: flex; flex-shrink: 0; font-family: var(--font-en); font-size: clamp(2rem, 2.5vw, 2.5rem); font-weight: 800; height: 4.5rem; justify-content: center; line-height: 1; width: 4.5rem; }
.p-recruit-points__title { font-size: clamp(1.375rem, 2vw, 1.875rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.5; margin: 0 0 0.5rem; }
.p-recruit-points__text { font-size: clamp(0.9375rem, 1.1vw, 1.125rem); line-height: 1.8; margin: 0; }
.p-recruit-requirements { margin-inline: auto; max-width: 72rem; }
.p-recruit-requirements__group + .p-recruit-requirements__group { margin-top: clamp(4rem, 7vw, 7rem); }
.p-recruit-requirements__subheading { align-items: center; display: flex; font-size: clamp(1.375rem, 2vw, 1.75rem); font-weight: 700; gap: 0.875rem; letter-spacing: 0.04em; line-height: 1.5; margin: 0 0 clamp(1.5rem, 2.5vw, 2.5rem); }
.p-recruit-requirements__subheading::before { background: #000; content: ""; height: 0.25rem; width: 1.75rem; }
.p-recruit-requirements__item dt { color: #005385; font-weight: 700; }
.p-recruit-requirements__item dd { margin: 0; padding: 1.5rem 1rem; }
.p-recruit-requirements__note { font-weight: 700; margin: clamp(3rem, 5vw, 5rem) 0 2rem; text-align: center; }
.p-recruit-requirements__button { text-align: center; }
.p-recruit-entry-button { background: #e4bf00; color: var(--color-white); display: grid; font-size: 1.75rem; height: 6rem; margin: auto; place-content: center; }
.p-recruit-entry-button span + span { position: absolute; right: 2rem; }
.p-privacy .l-page-wrap::before { content: none; }
.p-privacy__inner { display: flex; flex-direction: column; gap: 2.5em; }
.p-privacy__lead { font-size: clamp(1rem, 1.1vw, 1.125rem); line-height: 2; margin: 0; }
.p-privacy__heading { font-size: clamp(1.25rem, 1.5vw, 1.5rem); font-weight: 700; margin: 0 0 1rem; }
.p-privacy__section p { line-height: 1.8; margin: 0; }
.p-privacy__section ul { line-height: 1.8; margin: 1rem 0 0; padding-left: 1.5rem; }
.p-privacy__contact { margin-top: 1.5rem; }
.p-privacy__contact p { margin: 0; }
.is-recruit-page .l-header .wp-block-navigation-item__content::after,
.is-recruit-page .l-header__recruit a { background: #77c9fb; }
.is-recruit-page .l-footer { background: #005385; }
.is-recruit-page .l-footer__curve path { fill: #005385; }
.is-recruit-page .l-footer__nav a:hover { color: #77c9fb; }
.is-recruit-page .c-page-top { background: #77c9fb; }
.is-recruit-page .p-recruit-cta { display: none; }


@media screen and (min-width: 768px) {
    .l-header__inner { height: 5rem; }
    .l-header .wp-block-navigation__responsive-container-open { display: none; }
    .l-header .wp-block-navigation-item__content { font-size: clamp(0.8125rem, 0.76rem + 0.12vw, 0.9375rem); line-height: 1.5; padding: 0.5em 0; }
    .wp-block-navigation .wp-block-navigation-item.l-header__news-sp { display: none; }
    .l-page-wrap::before { width: clamp(65rem, 92vw, 92rem); }
    .l-footer__curve { height: 3.5vw; top: calc(-3.5vw + 1px); }
    .c-button { font-size: 1.25rem; height: 5rem; width: 22.75rem; }
    .c-section-heading { font-size: clamp(1.5rem, 2vw, 2rem); }
    .p-home-mv { display: grid; grid-template-columns: minmax(0, 1fr) 5rem; opacity:0; overflow: hidden; position: relative; transform:translateY(1rem); }
    .p-home-mv__inner { width: calc(100vw - 5em); }
    .p-home-mv__visual { border-radius: 0 1.5rem 1.5rem 0; min-height: calc(100svh - 10rem); }
    .p-home-mv__copy { bottom: clamp(4rem, 8vw, 8rem); right: 5rem; }
    .p-home-about__visual { height: 100%; top: 0; width: 56vw; }
    .p-home-business { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 60%); padding: 8.75rem clamp(2rem, 7vw, 7rem) 8.75rem 0; }
    .p-home-business__content { gap: 3rem; padding: clamp(4rem, 7vw, 7rem) clamp(2rem, 7vw, 7rem); }
    .p-home-business__heading { align-items: baseline; gap: clamp(1.5rem, 2vw, 2.5rem); }
    .p-home-business__slider { display: none; }
    .p-home-flow { gap: clamp(6rem, 9vw, 10rem); padding: clamp(6rem, 9vw, 10rem) 0 clamp(3rem, 4.5vw, 5rem); }
    .p-home-flow section { padding: 0 clamp(1.5rem, 5vw, 5rem); }
    .p-home-flow__title { font-size: 2rem; }
    .p-home-works { padding: 0 0 0 clamp(3rem, 10vw, 10rem) !important; }
    .p-home-works__inner { align-items: center; display: grid; gap: clamp(3rem, 7vw, 8rem); grid-template-columns: 1fr 50vw; margin-inline: auto; margin-right: 0; max-width: var(--wide-width); }
    .p-home-works__content { max-width: 34rem; }
    .p-home-works__image { border-radius: clamp(1rem, 2vw, 2rem) 0 0 clamp(1rem, 2vw, 2rem); height: 37.5rem; overflow: hidden; }
    .p-home-area__inner { align-items: center; display: grid; gap: clamp(3rem, 7vw, 8rem); grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); margin-inline: auto; max-width: var(--wide-width); }
    .p-home-area__content { max-width: 34rem; }
    .p-home-news__inner { display: grid; gap: clamp(3rem, 6vw, 7rem); grid-template-columns: minmax(0, 0.25fr) minmax(0, 0.75fr); margin-inline: auto; max-width: var(--wide-width); }
    .p-home-news__item { padding: clamp(1.5rem, 2.5vw, 2.25rem) 4rem clamp(1.5rem, 2.5vw, 2.25rem) 0; }
    .p-home-news__item-title a::after { font-size: 1.5rem; right: 2rem; }
    .p-news-list__item { padding: clamp(1.5rem, 2.5vw, 2.25rem) 4rem clamp(1.5rem, 2.5vw, 2.25rem) 0; }
    .p-news-list__title a::after { font-size: 1.5rem; right: 2rem; }
    .p-page-content .entry-content { gap: 6.875rem; }
    .p-home .p-recruit-cta { padding-left: 0; padding-right: 0; }
    .p-recruit-cta__content { gap: 1.5em; padding: 2.5rem 0 2.5rem 4rem; width: 45%; }
    .p-recruit-cta__image { width: 55%; }
    .p-about .p-page-content { padding-bottom: clamp(6rem, 9vw, 10rem); }
    .p-company-main { border-right: 1px solid var(--color-main); min-width: 0; padding-right: clamp(3rem, 6vw, 6rem); }
    .p-company-section + .p-company-section { margin-top: clamp(6rem, 9vw, 9rem); }
    .p-company-overview__row dd { border-bottom: 1px solid rgb(0 0 0 / 15%); padding: 1.5rem 1rem; }
    .p-company-overview__row:first-child dt { border-top: 1px solid var(--color-main); }
    .p-company-overview__row:first-child dd { border-top: 1px solid rgb(0 0 0 / 15%); }
    .p-contact-form__head { padding: 1.75rem 1rem; }
    .p-contact .p-page-content .entry-content { gap: 5rem; }
    .p-contact-form__row { display: grid; grid-template-columns: 20rem minmax(0, 1fr); }
    .p-contact-form__body { border-bottom: 1px solid rgb(0 0 0 / 15%); padding: 1.5rem; }
    .p-contact-form__row:first-child .p-contact-form__head { border-top: 1px solid var(--color-main); }
    .p-contact-form__row:first-child .p-contact-form__body { border-top: 1px solid rgb(0 0 0 / 15%); }
    .p-contact-form textarea { min-height: 12rem; }
    .p-contact-form__privacy { margin-top: 2.5rem; text-align: center; }
    .p-contact-confirm__row:first-child .p-contact-confirm__head { border-top: 1px solid var(--color-main); }
    .p-contact-confirm__row:first-child .p-contact-confirm__body { border-top:  1px solid rgb(0 0 0 / 15%); }
    .p-contact-confirm__head { padding: 1.75rem 1rem; }
    .p-contact-confirm__body { border-bottom: 1px solid rgb(0 0 0 / 15%); padding: 1.75rem 1.5rem; }
    .p-contact-confirm__buttons { margin-top: 3rem; }
    .p-recruit-intro { padding: 0 clamp(1.25rem, 4vw, 3rem); }
    .p-recruit-business { padding-bottom: 4rem; }
    .p-recruit-business__title { bottom: 2rem; padding: 0.8rem 1.25rem; }
    .p-recruit-requirements__item { border-bottom: 1px solid #ddd; display: grid; grid-template-columns: 10rem 1fr; }
    .p-recruit-requirements__item dt { padding: 1.5rem 1rem; }
    .p-recruit-entry-button { min-width: 32rem; }
}

@media screen and (min-width:768px) and (max-width: 1480px) {
    body { font-size: 1.0811vw; }
    .l-header__logo img { width: 14.8649vw; }
    .l-page-wrap::before { width: 99.4595vw; }
    .l-header__recruit a { height: 3.7838vw; width: 10.8108vw; }
    .c-button { font-size: 1.6216vw; height: 5.4054vw; width: 24.5946vw; }
    .p-recruit-cta__content { gap: 1.6216vw; padding: 2.7027vw 0 2.7027vw 4.3243vw; }
    .p-recruit-cta__title { font-size: 2.1622vw; }
    .p-recruit-cta__button { font-size: 1.6216vw; height: 5.4054vw; width: 24.5946vw; }
    .p-page-hero { padding: 11.8919vw 8.1081vw 8.6486vw; }
    .p-page-content .entry-content { gap: 7.4324vw; }
    .p-company-layout { gap: 6.4865vw; grid-template-columns: minmax(0, 1fr) 15.1351vw; }
    .p-contact .p-page-content .entry-content { gap: 5.4054vw; }
}

@media screen and (max-width: 767px) {
    .l-header { padding: .5rem 0.5rem 0; }
    .l-header__inner { align-items: center; display: flex; justify-content: space-between; height: 3.75rem; padding: 0 .5rem 0 1rem; }
    .l-header__logo img { width: 11rem; }
    .l-header__right { gap: 0.5rem; }
    .l-header__recruit { display: none; }
    .l-header .wp-block-navigation__responsive-container-open { align-items: center; background: var(--color-main); border-radius: .375rem; color: var(--color-white); display: flex; height: 2.75rem; justify-content: center; padding: 0; width: 2.75rem; }
    .l-header:has(.wp-block-navigation__responsive-container.is-menu-open) { transform: none !important; }
    .l-header .wp-block-navigation__responsive-container.is-menu-open { bottom: 0; height: 100vh; left: 0; margin: 0; max-height: none; overflow-y: auto; position: fixed; right: 0; top: 0; width: 100vw; z-index: 9999; }
    .l-header .wp-block-navigation__responsive-container-content { box-sizing: border-box; min-height: 100%; padding: 5rem 8% 3rem; }
    .l-header .wp-block-navigation__responsive-container-close { position: absolute; right: 1.5rem; top: 1.5rem; }
    .l-header .wp-block-navigation__container, .l-header .wp-block-navigation-item { width: 100%; }
    .l-header .wp-block-navigation-item { border-bottom: 1px solid #e7e7e7; }
    .l-header .wp-block-navigation-item__content { display: block; width: 100%; }
    .l-header .wp-block-navigation-item__content::after { content: none; }
    .l-header .wp-block-navigation-item:not(.l-header__recruit) .wp-block-navigation-item__content { padding: 1rem .5rem !important; }
    .l-header .wp-block-navigation-item:not(.l-header__recruit) .wp-block-navigation-item__content::before { content: "→"; font-size: .625rem; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); }
    .l-header .wp-block-navigation-item__content span { font-size: 1.125rem; }
    .l-header__news-sp { display: block; }
    .l-header .wp-block-navigation__responsive-container .wp-block-navigation-item.l-header__recruit > .wp-block-navigation-item__content { background: var(--color-main) !important; border-radius: var(--radius-pill); color: var(--color-white) !important; display: flex; justify-content: center; padding: 1rem 2rem; width: 100%; }
    .l-header__recruit { margin-top: 1.5rem; }
    .l-header__recruit .wp-block-navigation-item__content { padding: 0 !important; }
    .l-page::before { border-radius: 0 0 55% 0 / 0 0 8% 0; height: 32rem; width: 92vw; }
    .l-page-wrap::before { width: 99.4595vw; }
    .l-footer { padding: 2rem 1.5rem 3rem }
    .l-footer__curve { height: 5vw; top: calc(-5vw + 1px); }
    .l-footer__inner { display: block; }
    .l-footer__info { padding-top: 0; width: 100%; }
    .l-footer__logo { margin-bottom: 1rem; }
    .l-footer__logo img { width: 11rem; }
    .l-footer__address { font-size: 0.75rem; }
    .l-footer__map { margin-left: 0.5rem; min-width: 5rem; padding: 0.25rem 1rem; }
    .l-footer__copy { margin-top: 2rem; }
    .l-footer__nav { display: none; }

    .c-button { font-size: 1.125rem; height: 4rem; width: 78%; }
    .c-content > * + * { margin-top: 1.5rem; }
    .c-heading { font-size: 1.75rem; }
    .c-section-heading { font-size: 1.375rem; }
    .c-subheading { font-size: 1.25rem; }
    .c-lead { font-size: 1.125rem; }
    .c-page-top { bottom: 1rem; height: 3rem; right: 1rem; width: 3rem; }
    .c-table { font-size: 0.875rem; }
    .c-table th, .c-table td { padding: 1rem 0.75rem; }
    .c-table th { width: 32%; }

    .p-home .c-button { display: flex; margin-left: auto; margin-right: auto; }
    .p-home-mv__visual { height: 60svh; }
    .p-home-mv__title { font-size: 2.25rem; }
    .p-home-mv__copy { bottom: 1.5rem; right: 1.5rem; }
    .p-home-mv__side { display: none; }
    .p-home-about { background: url(../images/top-about-water.jpg) center bottom / 100% auto no-repeat; padding: 3rem 2rem 15rem; }
    .p-home-about__visual { height: 14rem; width: 100%; }
    .p-home-about__water { display: none; }
    .p-home-about__pipe { top: 0; transform: translate(20%, -15%); width: 83%; }
    .p-home-about.is-show .p-home-about__pipe { transform: translate(0, 0); }
    .p-home-about__en { font-size: 2.75rem; }
    .p-home-about__lead { font-size: 1.75rem; }
    .p-home-about__text br { display: none; }
    .p-home-business { display: block; }
    .p-home-business__content { gap: 1.5rem; padding: 3rem 2rem; }
    .p-home-business__heading { flex-direction: column; }
    .p-home-business__lead br { display: none; }
    .p-home-business__media { display: none; }
    .p-home-business__list { display: none; }
    .p-home-business__slider { display: block; margin-right: -2rem; }
    .p-home-business__slider-track { display: flex; gap: 1rem; overflow-x: auto; padding-right: 2rem; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .p-home-business__slider-track::-webkit-scrollbar { display: none; }
    .p-home-business__slide { flex: 0 0 100%; scroll-snap-align: start; }
    .p-home-business__slide-image { border-radius: 0.75rem; margin: 0; overflow: hidden; }
    .p-home-business__slide-image img { aspect-ratio: 4 / 3; display: block; height: 100%; object-fit: cover; width: 100%; }
    .p-home-business__slide-info { align-items: baseline; display: flex; gap: .5rem; padding-top: .75rem; }
    .p-home-business__slide-number { font-family: var(--font-en); font-weight: 700; }
    .p-home-business__slide-name { font-size: clamp(1.25rem, 5vw, 1.5rem); font-weight: 700; }
    .p-home-business__slider-dots { display: flex; gap: 0.5rem; justify-content: center; margin-top: 1.5rem; }
    .p-home-business__slider-dot { background: rgb(255 255 255 / 35%); border: 0; border-radius: 50%; height: 0.5rem; padding: 0; transition: background var(--transition), transform var(--transition); width: 0.5rem; }
    .p-home-business__slider-dot.is-active { background: var(--color-white); transform: scale(1.25); }
    .p-home-flow { gap: 4rem; overflow: clip; padding-top: 4rem; }
    .p-home-flow-bg-wrap { overflow: visible; }
    .p-home-flow-bg { height: 100dvh; overflow: hidden; position: sticky; top: 0; }
    .p-home-flow-bg__image { height: 100%; object-fit: cover; object-position: left top; width: 150%; }
    .p-home-flow__en { font-size: 2.75rem; }
    .p-home-flow__title { font-size: 1.375rem; }
    .p-home-works { padding: 0 1.5rem; }
    .p-home-works__inner { display: flex; flex-direction: column; }
    .p-home-works__content { display: contents; max-width: none; }
    .p-home-works__en { order: 1; }
    .p-home-works__title { order: 2; }
    .p-home-works__image { border-radius: .75rem; margin: clamp(1.5rem, 2vw, 2rem) 0 0; order: 3; overflow: hidden; }
    .p-home-works__text { order: 4; }
    .p-home-works__button { order: 5; }
    .p-home-area { padding: 0 1.5rem; }
    .p-home-area__inner { display: flex; flex-direction: column; }
    .p-home-area__content { display: contents; max-width: none; }
    .p-home-area__en { order: 1; }
    .p-home-area__title { order: 2; }
    .p-home-area__map { margin: clamp(1.5rem, 2vw, 2rem) 0 0; order: 3; }
    .p-home-area__map img { max-width: 14rem; }
    .p-home-area__text { order: 4; }
    .p-home-area__button { order: 5; }
    .p-home-news { padding: 0 1.5rem; }
    .p-home-news__inner { grid-template-columns: 1fr; }
    .p-home-news__query { margin-top: 2rem !important; }
    .p-home-news__item { padding: 1rem 2.5rem 1rem .5rem; }
    .p-home-news__item-title a::after { right: .75rem; }
    .p-news-list { padding: 0 1.5rem 4rem; }
    .p-news-list__item { padding: 1rem 2.5rem 1rem .5rem; }
    .p-news-list__title a::after { right: .75rem; }
    .p-news-single__hero { padding: 6rem 1.5rem 3rem; }
    .p-news-single__body { padding: 0 1.5rem 6rem; }
    .p-news-single__title { font-size: 1.75rem; }
    .p-page-hero { padding: 6rem 1.5rem 3.5rem; }
    .p-page-hero__en { font-size: 2.75rem; }
    .p-page-hero__title { font-size: 0.875rem; margin-top: 1rem; }
    .p-page-content { padding: 0 1.5rem 4rem; }
    .p-page-content .entry-content { gap: 3.5rem; }
    .p-recruit-cta { padding: 0 1.5rem 4rem; }
    .p-recruit-cta__inner { flex-direction: column-reverse; }
    .p-recruit-cta__content { gap: 1em; padding: 1.5rem; }
    .p-recruit-cta__content::after { display: none; }
    .p-recruit-cta__en { font-size: 1.75rem; }
    .p-recruit-cta__title { font-size: 1.125rem; }
    .p-recruit-cta__title br, .p-recruit-cta__text br { display: none; }
    .p-recruit-cta__text { font-size: .875rem; }
    .p-recruit-cta__image { aspect-ratio: 2 / 1; }
    .p-recruit-cta__button { width: 100%; }
    .p-about-philosophy__heading { font-size: 1.625rem; }
    .p-about-philosophy__text { font-size: 0.9375rem; line-height: 2; margin-top: 1.75rem; }
    .p-about-message { border-radius: 0.75rem; padding: 2rem 1.5rem; }
    .p-about-message__heading { font-size: 1.375rem; margin-bottom: 1.75rem; }
    .p-about-message__body p { font-size: 0.875rem; line-height: 1.9; }
    .p-about-message__body p + p { margin-top: 1.5rem; }
    .p-about-message__body p br { display: none; }
    .p-about-message__name { font-size: 0.875rem; margin-top: 1.75rem; }
    .p-about-strength__heading { font-size: 1.375rem; margin-bottom: 2rem; }
    .p-about-strength__list { grid-template-columns: 1fr; }
    .p-about-strength__item { min-height: 15rem; padding: 2rem 1.25rem; }
    .p-about-strength__number { font-size: 1.75rem; }
    .p-about-strength__title { margin: 1.25rem 0 1rem; min-width: 9rem; }
    .p-about-strength__text { font-size: 0.875rem; }
    .p-business .c-section-lead br { display: none; }
    .p-business-item { gap: 1.25rem; grid-template-columns: 1fr; }
    .p-business-item + .p-business-item { margin-top: 4rem; }
    .p-business-item__number { font-size: 1.75rem; }
    .p-business-item__title { font-size: 1.75rem; margin: .5rem 0; }
    .p-business-item__text { font-size: 0.9375rem; }
    .p-business-button { align-items: center; flex-direction: column; gap: .75rem; }
    .p-area-lead { font-size: 1.25rem; margin-bottom: 3rem; }
    .p-area-prefectures { margin-top: 2.5rem; }
    .p-area-prefecture + .p-area-prefecture { margin-top: 3rem; }
    .p-area-prefecture__list--saitama { column-count: 2; column-gap: 1.5rem; }
    .p-works .c-section-lead br { display: none; }
    .p-works-gallery__list { gap: 2.5rem; grid-template-columns: 1fr; }
    .p-works-gallery__title { font-size: 1rem; }
    .p-works-gallery__text { font-size: 0.875rem; }
    .p-works-history__item { gap: 1.25rem; grid-template-columns: 1fr; }
    .p-works-history__year { display: inline-block; font-size: 1rem; min-width: 7.5rem; width: fit-content; }
    .p-works-history__works li { font-size: 0.875rem; }
    .p-company-layout { display: block; }
    .p-company-main { display: flex; flex-direction: column; gap: 3.5rem; }
    .p-company-nav { display: none; }
    .p-company-overview__row { grid-template-columns: 1fr; }
    .p-company-overview__row dt { padding: 0 0 .5rem; }
    .p-company-overview__row dd { padding: .375rem 0 1.5rem; }
    .p-company-overview__map { margin-left: 0.75rem; }
    .p-company-history::before { left: 0.25rem; }
    .p-company-history__item { gap: 0.5rem; grid-template-columns: 1fr; padding-left: 1.5rem; }
    .p-company-history__item::before { left: 0; top: 0.6rem; }
    .p-company-history__item + .p-company-history__item { margin-top: 1rem; }
    .p-company-history__date { font-weight: 700; }
    .p-company-qualification { column-count: 1; }
    .p-company-awards__item { gap: 1.25rem; grid-template-columns: 1fr; }
    .p-company-awards__label { min-width: 7.5rem; width: fit-content; }
    .p-company-iso__data-row { grid-template-columns: 1fr; }
    .p-company-iso__data-row dt { padding-bottom: 0; }
    .p-company-iso__policy { grid-template-columns: 1fr; }
    .p-company-iso__marks { gap: 1.5rem; }
    .p-contact-lead br { display: none; }
    .p-contact-heading { font-size: 1.125rem; margin-bottom: 1.25rem; }
    .p-contact-tel__link { font-size: 2rem; }
    .p-contact-form__head { padding: 0 0 .5rem; }
    .p-contact-form__body { padding: 1rem 0 1.5rem; }
    .p-contact-form input:not([type="submit"]):not([type="checkbox"]) { max-width: none; }
    .p-contact-form textarea { height: 10rem; }
    .p-contact-confirm__row { grid-template-columns: 1fr; }
    .p-contact-confirm__head { padding: 0 0 .5rem; }
    .p-contact-confirm__body { padding: 1rem 0 1.5rem; }
    .p-contact-confirm__buttons { align-items: center; flex-direction: column-reverse; margin-top: 1rem; }
    .p-thanks .p-page-content p + p { margin-top: 1rem; }
    .p-recruit-gallery__group { gap: 0.5rem; padding-right: 0.5rem; }
    .p-recruit-gallery__set { gap: 0.5rem; height: 13rem; }
    .p-recruit-gallery__large { flex-basis: 19rem; }
    .p-recruit-gallery__small { flex-basis: 9rem; gap: 0.5rem; }
    .p-recruit-business__list { grid-template-columns: 1fr; }
    .p-recruit-business__item:nth-child(2), .p-recruit-business__item:nth-child(3) { transform: none; }
    .p-recruit-business__image img { aspect-ratio: 16 / 10; }
    .p-recruit-business__title { bottom: 1rem; padding: 0.5rem 1rem; }
    .p-recruit-points::after { border-radius: 1rem 0 0 1rem; width: calc(100vw - 1.25rem); }
    .p-recruit-points__inner { gap: 2.5rem; grid-template-columns: 1fr; padding-left: 2.5rem; padding-right: 1.25rem; }
    .p-recruit-points__head { align-items: center; display: flex; flex-direction: column; }
    .p-recruit-points__heading { line-height: 1.5; text-align: center; }
    .p-recruit-points__line { width: 12rem; }
    .p-recruit-points__item { gap: 1rem; grid-template-columns: 3.5rem 1fr; }
    .p-recruit-points__number { font-size: 1.75rem; height: 3.5rem; width: 3.5rem; }
    .p-recruit-requirements__item { grid-template-columns: 1fr; }
    .p-recruit-requirements__item dt { border-bottom: 1px solid #bfe4f7; padding: 0 0 .5rem; }
    .p-recruit-requirements__item dd { padding: 1rem 0 1.5rem; }
    .is-recruit-page .l-header .wp-block-navigation__responsive-container-open { background: #77c9fb; }
}

@media (prefers-reduced-motion: reduce) {
    .p-home-mv__slider canvas { display: none; }
    .p-home-mv__fallback { display: block; }
    .p-home-flow-bg__image { clip-path: inset(0 0 0 0); }
    .p-recruit-gallery__track { animation: none; }
}
