@charset "UTF-8";
/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*, ::before, ::after { box-sizing: border-box; border-style: solid; border-width: 0; min-width: 0; }

/* Document */
/* ============================================ */
/** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. 3. Remove gray overlay on links for iOS. */
html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -webkit-tap-highlight-color: transparent; /* 3*/ }

/* Sections */
/* ============================================ */
/** Remove the margin in all browsers. */
body { margin: 0; }

/** Render the `main` element consistently in IE. */
main { display: block; }

/* Vertical rhythm */
/* ============================================ */
p, table, blockquote, address, pre, iframe, form, figure, dl { margin: 0; }

/* Headings */
/* ============================================ */
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; margin: 0; }

/* Lists (enumeration) */
/* ============================================ */
ul, ol { margin: 0; padding: 0; list-style: none; }

/* Lists (definition) */
/* ============================================ */
dt { font-weight: bold; }

dd { margin-left: 0; }

/* Grouping content */
/* ============================================ */
/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */
hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ border-top-width: 1px; margin: 0; clear: both; color: inherit; }

/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */
pre { font-family: monospace, monospace; /* 1 */ font-size: inherit; /* 2 */ }

address { font-style: inherit; }

/* Text-level semantics */
/* ============================================ */
/** Remove the gray background on active links in IE 10. */
a { background-color: transparent; text-decoration: none; color: inherit; }

/** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */
abbr[title] { text-decoration: underline dotted; /* 2 */ }

/** Add the correct font weight in Chrome, Edge, and Safari. */
b, strong { font-weight: bolder; }

/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */
code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: inherit; /* 2 */ }

/** Add the correct font size in all browsers. */
small { font-size: 80%; }

/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sub { bottom: -0.25em; }

sup { top: -0.5em; }

/* Replaced content */
/* ============================================ */
/** Prevent vertical alignment issues. */
svg, img, embed, object, iframe { vertical-align: bottom; }

/* Forms */
/* ============================================ */
/** Reset form fields to make them styleable. 1. Make form elements stylable across systems iOS especially. 2. Inherit text-transform from parent. */
button, input, optgroup, select, textarea { -webkit-appearance: none; /* 1 */ appearance: none; vertical-align: middle; color: inherit; font: inherit; background: transparent; padding: 0; margin: 0; border-radius: 0; text-align: inherit; text-transform: inherit; /* 2 */ }

/** Correct cursors for clickable elements. */
button, [type="button"], [type="reset"], [type="submit"] { cursor: pointer; }

button:disabled, [type="button"]:disabled, [type="reset"]:disabled, [type="submit"]:disabled { cursor: default; }

/** Improve outlines for Firefox and unify style with input elements & buttons. */
:-moz-focusring { outline: auto; }

select:disabled { opacity: inherit; }

/** Remove padding */
option { padding: 0; }

/** Reset to invisible */
fieldset { margin: 0; padding: 0; min-width: 0; }

legend { padding: 0; }

/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */
progress { vertical-align: baseline; }

/** Remove the default vertical scrollbar in IE 10+. */
textarea { overflow: auto; }

/** Correct the cursor style of increment and decrement buttons in Chrome. */
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }

/** Correct the outline style in Safari. */
[type="search"] { outline-offset: -2px; /* 1 */ }

/** Remove the inner padding in Chrome and Safari on macOS. */
[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Fix font inheritance. */
::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ }

/** Fix appearance for Firefox */
[type="number"] { -moz-appearance: textfield; }

/** Clickable labels */
label[for] { cursor: pointer; }

/* Interactive */
/* ============================================ */
/* Add the correct display in Edge, IE 10+, and Firefox. */
details { display: block; }

/* Add the correct display in all browsers. */
summary { display: list-item; }

/* Remove outline for editable content. */
[contenteditable]:focus { outline: auto; }

/* Tables */
/* ============================================ */
/**
1. Correct table border color inheritance in all Chrome and Safari.
*/
table { border-color: inherit; /* 1 */ border-collapse: collapse; }

caption { text-align: left; }

td, th { vertical-align: top; padding: 0; }

th { text-align: left; font-weight: bold; }

html { scroll-behavior: smooth; }

body { position: relative; color: #080808; overflow-wrap: break-word; text-rendering: optimizeLegibility; word-wrap: break-word; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-weight: 400; font-size: 1rem; line-height: 1.4375; }

.contents-wrap { background-image: url("../images/wave_green.png"); background-repeat: no-repeat; background-size: 100% auto; background-position: bottom center; background-attachment: fixed; }
@media screen and (min-width: 769px) and (max-width: 1023px) { .contents-wrap { padding-top: 64px; } }
@media screen and (max-width: 768px) { .contents-wrap { padding-top: 48px; } }

.header__inner { display: flex; box-shadow: 0 0 8px #666; }
@media screen and (max-width: 1023px) { .header__inner { justify-content: space-between; background: #004d2d; position: fixed; width: 100%; z-index: 99; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .header__inner { height: 64px; } }
@media screen and (max-width: 768px) { .header__inner { height: 48px; } }
.header__logo { background: #004d2d; display: flex; align-items: center; z-index: 1; }
@media all and (min-width: 1024px) { .header__logo { flex-grow: 1; max-width: 496px; justify-content: center; padding: 0 2%; }
  .header__logo img { width: clamp(240px, 24vw, 320px); } }
@media screen and (max-width: 1023px) { .header__logo { width: 100%; padding-left: min(16px, 8%); }
  .header__logo img { width: clamp(172px, 40vw, 240px); } }
@media screen and (max-width: 520px) { .header__logo { margin-top: -2px; } }
.header-nav { flex-grow: 3; }
@media all and (min-width: 1024px) { .header-nav__list { display: grid; grid-auto-flow: column; } }
.header-nav__list > li a { display: block; width: 100%; }
@media all and (min-width: 1024px) { .header-nav__list > li a { position: relative; display: flex; align-items: center; justify-content: center; height: 90px; padding: 1.9em 8%; font-size: clamp(0.875rem, 1.2vw, 1.25rem); text-align: center; }
  .header-nav__list > li a:after { content: ""; display: block; position: absolute; bottom: 0; width: 100%; height: 4px; height: 4px; background: linear-gradient(90deg, #e0ff9c 40%, #004d2d); transition: all 0.5s; opacity: 0; }
  .header-nav__list > li a:hover:after { opacity: 1; }
  .header-nav__list > li:nth-of-type(1) a { padding: 1.9em 20%; }
  .header-nav__list > li:nth-of-type(4) a { padding: 1.9em 1%; }
  .header-nav__list > li:not(:first-of-type):not(:last-of-type) { border-left: 1px solid #d4d4d4; }
  .header-nav__list > li:last-of-type { background: #1a1a1a; color: #fff; }
  .header-nav__list > li:last-of-type a { padding: 1.9em 3em; }
  .header-nav__list > li._current a:before { content: ""; display: block; position: absolute; bottom: 0; width: 100%; height: 4px; background: linear-gradient(90deg, #e0ff9c 40%, #004d2d); transition: all 0.5s; }
  .header-nav__list > li > ul { display: none !important; } }
@media screen and (min-width: 1024px) and (max-width: 1319px) { .header-nav__list > li:last-of-type { background: #1a1a1a; color: #fff; }
  .header-nav__list > li:last-of-type a { padding: 1.9em 8%; } }
@media screen and (max-width: 1023px) { .header-nav { position: fixed; width: 100%; height: 100vh; z-index: 0; background: #fff; overflow: auto; }
  .header-nav__list { height: 120vh; width: auto; padding-top: 0px; }
  .header-nav__list > li:not(:last-of-type) { position: relative; border-bottom: 1px solid #d4d4d4; }
  .header-nav__list > li:not(:last-of-type) > a { line-height: 60px; padding: 0 4%; }
  .header-nav__list > li:last-of-type { width: clamp(300px, 80%, 480px); margin: 3em auto 0; }
  .header-nav__list > li:last-of-type a { padding: 1em; background: #1a1a1a; color: #fff; text-align: center; }
  .header-nav__list > li > ul { display: none; margin-bottom: 24px; }
  .header-nav__list > li > ul li { position: relative; }
  .header-nav__list > li > ul li > a { padding-left: calc(4% + 1.1em); line-height: 36px; }
  .header-nav__list > li > ul li:before { content: ""; position: absolute; top: 50%; left: 0; vertical-align: middle; padding-bottom: .2em; border-top: 1px solid #666; width: .8em; margin: 0 0 0 4%; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .header-nav { top: 64px; } }
@media screen and (max-width: 768px) { .header-nav { top: 48px; padding-bottom: 100px; } }
@media screen and (max-width: 375px) { .header-nav { top: 48px; padding-bottom: 160px; } }
.header__menu { position: relative; background: #fff; cursor: pointer; }
.header__menu span { background: #000; position: absolute; height: 3px; transition: all .5s; }
@media all and (min-width: 1024px) { .header__menu { display: none; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .header__menu { width: 64px; }
  .header__menu span { width: 36px; }
  .header__menu span:nth-of-type(1) { top: 22px; left: 14px; }
  .header__menu span:nth-of-type(2) { top: 32px; left: 14px; }
  .header__menu span:nth-of-type(3) { top: 42px; left: 14px; } }
@media screen and (max-width: 768px) { .header__menu { width: 56px; }
  .header__menu span { width: 32px; }
  .header__menu span:nth-of-type(1) { top: 14px; left: 12px; }
  .header__menu span:nth-of-type(2) { top: 23px; left: 12px; }
  .header__menu span:nth-of-type(3) { top: 32px; left: 12px; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .header__menu._active span { width: 36px; }
  .header__menu._active span:nth-of-type(1) { -webkit-transform: translateY(10px) rotate(-45deg); transform: translateY(10px) rotate(-45deg); }
  .header__menu._active span:nth-of-type(2) { display: none; }
  .header__menu._active span:nth-of-type(3) { -webkit-transform: translateY(-10px) rotate(45deg); transform: translateY(-10px) rotate(45deg); } }
@media screen and (max-width: 768px) { .header__menu._active span { width: 32px; }
  .header__menu._active span:nth-of-type(1) { -webkit-transform: translateY(9px) rotate(-45deg); transform: translateY(9px) rotate(-45deg); }
  .header__menu._active span:nth-of-type(2) { display: none; }
  .header__menu._active span:nth-of-type(3) { t-webkit-transform: translateY(-9px) rotate(45deg); transform: translateY(-9px) rotate(45deg); } }

.footer { background-color: #004d2d; background-image: url("../images/corp_mark.svg"); background-repeat: no-repeat; background-size: clamp(480px, 27vw, 520px); color: #fff; }
@media all and (min-width: 769px) { .footer { padding: 100px 0 16px; background-position: bottom -72px left -36px; border-top: 16px solid #000; } }
@media screen and (max-width: 768px) { .footer { padding: 48px 0 8px; background-size: 260px; background-position: top 16px right -16px; border-top: 12px solid #000; } }
.footer__inner { width: min(100vw, calc(1200px + 8%)); padding: 0 4%; margin: auto; }
@media all and (min-width: 769px) { .footer__inner { display: flex; justify-content: space-between; } }
@media all and (min-width: 1024px) { .footer__inner { margin-bottom: 80px; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .footer__inner { margin-bottom: 64px; } }
@media screen and (max-width: 1023px) { .footer__inner { width: 100%; } }
@media screen and (max-width: 768px) { .footer__inner { margin-bottom: 40px; padding: 0 8%; } }
.footer-info { width: min(100%, 320px); }
.footer-info__link a { display: block; background: #fe8b00; line-height: 54px; margin-top: 40px; padding: 0 2em; width: fit-content; font-weight: 500; text-align: center; }
@media screen and (max-width: 768px) { .footer-info__link { margin-bottom: 2em; }
  .footer-info__link a { width: min(197px, 60vw, 240px); padding: 0 1px; margin-bottom: 2em; line-height: 42px; font-size: 1rem; } }
.footer-info__logo { margin-bottom: 2em; }
.footer-info__logo img { width: clamp(287px, 24vw, 320px); }
@media screen and (max-width: 375px) { .footer-info__logo img { width: 100%; } }
@media screen and (max-width: 375px) { .footer-info { font-size: 0.875rem; } }
.footer-sitemap { display: flex; }
@media all and (min-width: 1024px) { .footer-sitemap { justify-content: space-between; width: calc(96% - 320px); max-width: 640px; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .footer-sitemap { width: calc(100% - 320px); flex-wrap: wrap; justify-content: space-between; } }
@media screen and (max-width: 768px) { .footer-sitemap { flex-direction: column; } }
.footer-sitemap__list { font-size: clamp(0.938rem, 0.95vw, 1.125rem); margin-right: 1em; width: auto; }
.footer-sitemap__list > li { margin-bottom: 16px; }
.footer-sitemap__list > li a { font-weight: 500; }
@media screen and (max-width: 768px) { .footer-sitemap__list > li { margin-bottom: 8px; } }
.footer-sitemap__list > li:before { content: "■"; display: inline; vertical-align: top; color: #fe8b00; }
.footer-sitemap__list > li ._child-list { margin-top: 16px; }
@media screen and (max-width: 768px) { .footer-sitemap__list > li ._child-list { margin-top: 8px; } }
.footer-sitemap__list > li ._child-list li { margin-bottom: 14px; }
.footer-sitemap__list > li ._child-list li a { font-weight: 400; }
@media screen and (max-width: 768px) { .footer-sitemap__list > li ._child-list li { margin-bottom: 7px; } }
.footer-sitemap__list > li ._child-list li:before { content: ""; display: inline-block; vertical-align: middle; padding-bottom: .2em; border-top: 1px solid #fff; width: .8em; margin: 0 .2em 0 .1em; }
@media screen and (max-width: 375px) { .footer-sitemap__list { font-size: 0.875rem; } }
.footer__copyright { font-size: clamp(0.625rem, calc(0.422rem + 0.43vw), 0.938rem); text-align: center; padding-bottom: .8em; }
.footer__pagetop { display: block; aspect-ratio: 1 / 1; position: fixed; background-color: #000; background-repeat: no-repeat; background-position: center; cursor: pointer; transition: background .5s; z-index: 10; }
@media (any-hover: hover) { .footer__pagetop:hover { background-position: top 10px center; } }
@media all and (min-width: 769px) { .footer__pagetop { bottom: 8px; right: 12px; width: min(6vw, 70px); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='27' height='16' viewBox='0 0 27.16 16.2'%3E%3Cg%3E%3Cpath d='M26.08,15.16L13.58,2.16,1.08,15.16' style='fill: none; stroke: %23fff; stroke-width: 3px;'/%3E%3C/g%3E%3C/svg%3E"); } }
@media screen and (max-width: 768px) { .footer__pagetop { bottom: 0; right: 0; width: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16.12 10.18'%3E%3Cg%3E%3Cpath d='M15.06,9.12l-7-7L1.06,9.12' style='fill: none; stroke: %23fff; stroke-width: 3px;'/%3E%3C/g%3E%3C/svg%3E"); } }

.lower-column { display: flex; }
@media screen and (max-width: 768px) { .lower-column { flex-direction: column; } }
.lower-column > * { position: relative; overflow: hidden; background-color: #212121; color: #fff; }
.lower-column > *:after { position: absolute; content: ""; display: block; width: 100%; height: 100%; top: 0; background-size: cover; transition: all .5s ease-out; opacity: .3; }
@media all and (min-width: 1320px) { .lower-column > * { width: 50%; height: 524px; } }
@media screen and (min-width: 769px) and (max-width: 1319px) { .lower-column > * { width: 50%; height: 480px; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .lower-column > * { width: 50%; height: auto; } }
@media screen and (max-width: 768px) { .lower-column > * { width: 100%; margin-top: 4px; } }
.lower-column__body { display: flex; justify-content: center; height: 100%; margin-left: 4%; padding-left: 4%; }
@media all and (min-width: 1024px) { .lower-column__body { padding: 6em 0; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .lower-column__body { flex-wrap: wrap; align-content: space-around; padding: 3em 10% 3em; } }
@media screen and (max-width: 768px) { .lower-column__body { flex-wrap: wrap; padding: 3em 8% 3em; } }
@media screen and (max-width: 520px) { .lower-column__body { margin: 0; }
  .lower-column__body br { display: none; } }
.lower-column__text { z-index: 1; width: min(24em, 100%); }
.lower-column__text > p { font-size: clamp(0.938rem, 0.9vw, 1rem); font-weight: 500; line-height: 1.8; }
@media all and (min-width: 1024px) { .lower-column__text { min-height: 16em; }
  .lower-column__text > p + p { margin-top: 2em; } }
@media screen and (min-width: 1024px) and (max-width: 1319px) { .lower-column__text { min-height: 14em; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .lower-column__text { min-height: 14em; }
  .lower-column__text > p { line-height: 1.6; } }
@media screen and (max-width: 520px) { .lower-column__text { width: auto; margin: auto; } }
@media screen and (max-width: 375px) { .lower-column__text br { display: none; } }
.lower-column__contact:after { background-image: url("../images/bg_col_contact.jpg"); }
.lower-column__recruit:after { background-image: url("../images/bg_col_recruit.jpg"); }
@media all and (min-width: 1600px) { .lower-column__recruit:after { background-position: top -40px left 0; } }
.lower-column__head { font-weight: 700; line-height: 1; }
@media all and (min-width: 521px) { .lower-column__head ._en { margin-bottom: .4em; font-size: clamp(2.25rem, 3vw, 3rem); }
  .lower-column__head ._ja { margin-bottom: 1.6em; line-height: 1; font-size: clamp(1.5rem, 1.8vw, 1.875rem); } }
@media screen and (max-width: 520px) { .lower-column__head { display: flex; align-items: center; justify-content: center; margin-bottom: 1.5em; }
  .lower-column__head ._en { font-size: clamp(1.5rem, 8vw, 2rem); margin-right: .5em; }
  .lower-column__head ._ja { font-size: clamp(0.825rem, 4vw, 1.25rem); } }
.lower-column__link { position: relative; z-index: 1; margin-top: 1.5em; margin-right: 4%; }
@media all and (min-width: 1024px) { .lower-column__link { width: min(296px, 40%); } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .lower-column__link { width: min(240px, 100%); } }
@media screen and (max-width: 768px) { .lower-column__link { width: min(200px, 100%); } }
.lower-column__link a { display: flex; justify-content: center; width: 100%; padding: 0 2em 0 2.5em; background: #000; font-weight: 500; line-height: 1; }
.lower-column__link a span { display: flex; justify-content: space-between; width: auto; }
.lower-column__link a span:after { content: "→"; }
@media all and (min-width: 1600px) { .lower-column__link a span:after { font-size: 1.5em; margin-top: -.2em; } }
@media screen and (max-width: 768px) { .lower-column__link a span:after { margin-left: .8em; } }
@media all and (min-width: 769px) { .lower-column__link a span { width: 11em; } }
@media all and (min-width: 1024px) { .lower-column__link a { position: absolute; bottom: 0; padding: 1.7em 1.5em; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .lower-column__link a { padding: 1.3em .5em; } }
@media screen and (max-width: 768px) { .lower-column__link a { padding: 1em .5em; } }

._link-btn { transition: transform .5s ease-out; font-size: clamp(1rem, 1vw, 1.125rem); }
@media (any-hover: hover) { ._link-btn:hover { transform: scale(1.1); } }

._link-reverse { transition: all .5s ease-out; }
@media (any-hover: hover) { ._link-reverse:hover { background-color: #fff; color: #000; } }

main { padding-top: clamp(2em, 7%, 80px); padding-bottom: clamp(120px, 15%, 200px); }
@media screen and (max-width: 520px) { main { font-size: 0.938rem; } }
main p { font-feature-settings: "palt"; }

section { overflow: hidden; }
section p { line-height: 2; }

.overlay { position: fixed; top: 0; width: 100%; height: 101vh; z-index: 999; background-color: #004d2d; }
.overlay p { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; }
.overlay p img { width: min(320px, 60%); height: auto; margin: auto; animation-name: strmov; animation-timing-function: ease-out; animation-fill-mode: forwards; animation-duration: 1s; }
@media screen and (max-width: 520px) { .overlay p img { width: min(320px, 80%); } }

@keyframes strmov { from { opacity: 0; transform: scale(0.8); }
  to { opacity: 1; transform: scale(1); } }
.breadcrumb { margin: clamp(10px, 2%, 24px) 4% 0; }
.breadcrumb ul { display: flex; width: min(1200px, 100%); margin: auto; }
@media screen and (max-width: 520px) { .breadcrumb ul { font-size: .938rem; } }
.breadcrumb ul li:not(:last-child) { display: inline-block; position: relative; }
.breadcrumb ul li:not(:last-child):after { content: "＞"; padding: 0 1em; }
.breadcrumb ul li:not(:last-child):before { content: ""; width: 0; border-bottom: 1px solid #000; position: absolute; bottom: 0; left: 0; transition: all .2s; }
@media (any-hover: hover) { .breadcrumb ul li:not(:last-child):hover:before { width: calc(100% - 3em); } }

.c-sec__common { padding-top: clamp(48px, 7vw, 128px); }
.c-sec__common:first-of-type { padding-top: 0; }
@media screen and (max-width: 520px) { .c-sec__common:first-of-type { padding-top: 2em; } }
.c-sec__works { padding-top: clamp(4rem, 7vw, 5rem); }
.c-sec__inner { width: min(calc(1200px + 8%), 100%); padding: 0 4%; margin-right: auto; margin-left: auto; }
@media screen and (max-width: 520px) { .c-sec__inner { padding: 0 8%; } }

[class^="c-title-border"]:after, [class*=" c-title-border"]:after { content: ""; width: 0; display: block; border-bottom: 1px solid #000; padding-top: .5em; transition: all .5s; transition-delay: .5s; }
[class^="c-title-border"]._action:after, [class*=" c-title-border"]._action:after { width: 100%; }

.c-title-border { position: relative; font-weight: 700; }
.c-title-border ._en { font-size: clamp(2.25rem, 4vw, 3rem); color: #004d2d; line-height: 1.4; }
.c-title-border ._ja { font-size: clamp(1rem, 2.5vw, 1.875rem); }
.c-title-border._r:after { margin-right: 0; margin-left: auto; }
@media all and (min-width: 769px) { .c-title-border { display: flex; flex-direction: column; align-items: flex-start; width: clamp(480px, 50%, 960px); } }
@media all and (min-width: 1024px) { .c-title-border { margin-bottom: 7rem; }
  .c-title-border ._en { margin-left: calc(50vw - 532px + 4rem); }
  .c-title-border ._ja { padding-bottom: 2rem; margin-left: calc(50vw - 532px + 4rem); } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .c-title-border { margin-bottom: 5rem; }
  .c-title-border ._en { margin-left: 4%; }
  .c-title-border ._ja { padding-bottom: 1rem; margin-left: 4%; } }
@media screen and (max-width: 768px) { .c-title-border { width: min(300px, 70%); margin: 0 auto 2em; }
  .c-title-border:after { bottom: 1.8rem; position: absolute; }
  .c-title-border ._en { font-size: 2.25rem; line-height: 1.8; color: #004d2d; margin-bottom: .5rem; text-align: center; }
  .c-title-border ._ja { font-size: 1rem; line-height: 1.2rem; text-align: center; } }
.c-title-border__m { margin-bottom: 2rem; font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 700; text-align: right; color: #004d2d; }
@media all and (min-width: 521px) { .c-title-border__m { width: 45%; } }
@media screen and (max-width: 520px) { .c-title-border__m { width: 75%; margin-bottom: 1.5em; font-size: 1.5rem; } }
.c-title-border__m._r { text-align: left; margin-right: 0; margin-left: auto; }
.c-title-border__m._r:after { margin-right: 0; margin-left: auto; }
.c-title-border__s { padding-bottom: .5em; margin-bottom: 3em; font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 700; text-align: right; color: #004d2d; }
@media all and (min-width: 1600px) { .c-title-border__s { width: calc(50% - 650px + 9em); } }
@media screen and (min-width: 1024px) and (max-width: 1599px) { .c-title-border__s { width: calc(4% + 10em); } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .c-title-border__s { width: calc(4% + 9.5em); margin-bottom: 40px; } }
@media screen and (min-width: 521px) and (max-width: 768px) { .c-title-border__s { width: calc(4% + 10em); margin-bottom: 40px; } }
@media screen and (max-width: 520px) { .c-title-border__s { width: calc(6% + 10em); margin-bottom: 1em; font-size: 1.25rem; } }

.c-title-center { text-align: center; }
.c-title-center ._en { font-size: clamp(2.25rem, calc(0.973rem + 2.7vw), 3rem); font-weight: 700; line-height: 1; margin-bottom: .35em; color: #004d2d; }
.c-title-center ._ja { font-size: clamp(1rem, calc(-0.49rem + 3.15vw), 1.875rem); font-weight: 700; line-height: 1; margin-bottom: 3em; }
.c-title-center._white ._en, .c-title-center._white ._ja { color: #fff; }

.c-col-2 { display: flex; }
@media screen and (max-width: 768px) { .c-col-2 { flex-direction: column; } }

.c-modal__container { position: relative; width: min(886px, 100%); margin: auto; padding: 3rem 3%; background: #dfffdf; border: 10px solid #fe8b00; border-radius: 20px; }
@media screen and (max-width: 768px) { .c-modal__container { padding: 3rem 8%; } }

.c-kv { position: relative; overflow: hidden; }
.c-kv + main { padding-top: 0; }
@media screen and (max-width: 768px) { .c-kv__wrap { display: flex; flex-direction: column; } }
@media screen and (max-width: 520px) { .c-kv { min-height: calc(100vh - 48px); } }
.c-kv__content { display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; width: 100%; padding-left: 4%; }
@media all and (min-width: 1024px) { .c-kv__content { height: clamp(560px, calc(100vh - 90px), 1000px); } }
@media screen and (min-width: 521px) and (max-width: 1023px) { .c-kv__content { height: clamp(360px, calc(100vh - 64px), 560px); } }
@media screen and (max-width: 520px) { .c-kv__content { width: 100%; height: auto; padding-right: 4%; } }
.c-kv__content__text { width: min(calc(1480px + 4%), 100%); }
.c-kv__content__text__head { font-size: clamp(3.5rem, calc(2.932rem + 1.2vw), 4.375rem); font-weight: 700; margin-bottom: .8em; }
.c-kv__content__text__lower { padding-left: .5em; font-size: 1.125rem; }
@media screen and (max-width: 520px) { .c-kv__content__text__lower { font-size: 1rem; } }
@media screen and (max-width: 520px) { .c-kv__content__text { margin-top: 2rem; }
  .c-kv__content__text__head { font-size: clamp(2.25rem, calc(2.088rem + 0.34vw), 2.5rem); margin-bottom: 2rem; } }
@media all and (min-width: 521px) { .c-kv__content { position: absolute; top: 0; left: 0; z-index: 1; height: 100%; } }
@media screen and (max-width: 520px) { .c-kv__content { width: 100%; height: auto; padding-bottom: 40px; } }
.c-kv__image { position: relative; }
.c-kv__image__inner { width: 100%; display: flex; justify-content: flex-end; }
@media screen and (min-width: 521px) and (max-width: 1023px) { .c-kv__image__inner { padding-left: 30%; } }
@media all and (min-width: 521px) { .c-kv__image__slide { -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 16%, #000 100%, transparent 100%); mask-image: linear-gradient(to right, transparent 0%, #000 16%, #000 100%, transparent 100%); } }
@media screen and (max-width: 520px) { .c-kv__image__slide { width: max(640px, 60%); -webkit-mask-image: linear-gradient(to top, transparent 0%, #000 20%, #000 100%, transparent 100%); mask-image: linear-gradient(to top, transparent 0%, #000 20%, #000 100%, transparent 100%); overflow: hidden; } }
@media all and (min-width: 1024px) { .c-kv__image__slide img { height: clamp(560px, calc(100vh - 90px), 1000px); } }
@media screen and (min-width: 521px) and (max-width: 1023px) { .c-kv__image__slide img { height: clamp(360px, calc(100vh - 64px), 560px); } }
@media screen and (max-width: 520px) { .c-kv__image__slide img { width: 130%; margin-left: -15%; height: auto; } }
.c-kv__scroll { display: flex; width: fit-content; padding-bottom: 0; z-index: 3; position: absolute; bottom: 0; left: 0; }
@media screen and (max-width: 520px) { .c-kv__scroll { padding-bottom: 8px; } }
.c-kv__scroll p { padding-right: 1em; color: transparent; -webkit-text-stroke: 2px white; text-stroke: 2px white; font-size: clamp(2rem, calc(-0.598rem + 5.5vw), 6rem); letter-spacing: .05em; font-family: "Arial Black", "Open Sans", sans-serif; font-weight: 800; animation: marquee 45s linear infinite; white-space: nowrap; }
.c-kv._action .c-kv__content__text { opacity: 0; animation-fill-mode: forwards; animation-timing-function: ease-out; animation-duration: 5s; animation-iteration-count: 1; animation-delay: 4s; }
@media all and (min-width: 521px) { .c-kv._action .c-kv__content__text { animation-name: move-left; } }
@media screen and (max-width: 520px) { .c-kv._action .c-kv__content__text { animation-name: fade-in; animation-duration: 1s; animation-delay: 4; } }
.c-kv._action .c-kv__content__text__lower { opacity: 0; animation-name: fade-in; animation-fill-mode: forwards; animation-timing-function: ease-in; animation-iteration-count: 1; }
@media all and (min-width: 521px) { .c-kv._action .c-kv__content__text__lower { animation-duration: 4s; animation-delay: 3.5s; } }
.c-kv._action .c-kv__image { opacity: 0; animation-name: fade-in; animation-fill-mode: forwards; animation-timing-function: ease-in; animation-iteration-count: 1; }
@media all and (min-width: 521px) { .c-kv._action .c-kv__image { animation-duration: 5s; animation-delay: 4s; } }
@media screen and (max-width: 520px) { .c-kv._action .c-kv__image { animation-duration: 1s; animation-delay: 3s; } }

.c-kv-page { display: flex; align-items: center; justify-content: center; width: 100%; background-size: cover; background-position: center center; }
.c-kv-page._company { background-image: url("../images/kv_company.jpg"); }
.c-kv-page._biz { background-image: url("../images/kv_biz.jpg"); }
.c-kv-page._works { background-image: url("../images/kv_works.jpg"); }
.c-kv-page._env { background-image: url("../images/kv_env.jpg"); }
.c-kv-page._contact { background-image: url("../images/kv_contact.jpg"); }
.c-kv-page h1, .c-kv-page h2 { width: min(1200px, 116%); margin: 0 8%; color: #fff; font-size: 2.25rem; font-weight: 700; text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); }
@media all and (min-width: 1024px) { .c-kv-page { height: 278px; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .c-kv-page { height: 240px; }
  .c-kv-page h1, .c-kv-page h2 { font-size: 2rem; } }
@media screen and (min-width: 521px) and (max-width: 768px) { .c-kv-page { height: 180px; }
  .c-kv-page h1, .c-kv-page h2 { font-size: 2rem; } }
@media screen and (max-width: 520px) { .c-kv-page { height: 96px; }
  .c-kv-page h1, .c-kv-page h2 { font-size: 1.25rem; } }

@keyframes fade-in { from { opacity: 0; }
  70% { opacity: 0; }
  to { opacity: 1; } }
@keyframes move-left { from { opacity: 0; transform: translate3d(32%, -30px, 0); }
  15% { opacity: 0; transform: translate3d(32%, -30px, 0); }
  30% { opacity: 1; transform: translate3d(32%, 0, 0); }
  80% { opacity: 1; transform: translate3d(32%, 0, 0); }
  90% { opacity: 1; transform: translate3d(0, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes move-left2 { from { opacity: 0; transform: translate3d(24%, -30px, 0); }
  15% { opacity: 0; transform: translate3d(24%, -30px, 0); }
  30% { opacity: 1; transform: translate3d(24%, 0, 0); }
  80% { opacity: 1; transform: translate3d(24%, 0, 0); }
  90% { opacity: 1; transform: translate3d(0, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes marquee { from { translate: 0; }
  to { translate: -100%; } }
.p-biz-col__upper { display: flex; flex-wrap: wrap; width: min(920px, 100%); margin: auto; }
.p-biz-col__upper__text h3 { position: relative; font-size: clamp(1.25rem, calc(0.824rem + 0.9vw), 1.5rem); font-weight: 700; color: #004d2d; margin-bottom: 1em; }
@media screen and (max-width: 520px) { .p-biz-col__upper__text h3 { width: 100%; font-size: clamp(1rem, calc(0.787rem + 0.45vw), 1.125rem); } }
.p-biz-col__upper__text h3._square { padding-left: 1.1em; }
.p-biz-col__upper__text h3._square:before { content: "■"; position: absolute; top: 0; left: 0; }
@media all and (min-width: 521px) { .p-biz-col__upper__text { flex-basis: min(400px, 44%); } }
@media screen and (min-width: 521px) and (max-width: 768px) { .p-biz-col__upper__text { flex-basis: 48%; } }
@media screen and (max-width: 520px) { .p-biz-col__upper__text p { margin-top: 3em; } }
.p-biz-col__upper__img img { width: 100%; }
@media all and (min-width: 521px) { .p-biz-col__upper__img { width: min(400px, 44%); } }
@media screen and (max-width: 520px) { .p-biz-col__upper__img { margin-right: auto; margin-left: auto; }
  .p-biz-col__upper__img._narrow { padding: 0 8%; } }
.p-biz-col__upper__img._lower { width: min(656px, 92%); margin-top: clamp(2em, 4vw, 5em); }
@media all and (min-width: 521px) { .p-biz-col__upper { gap: 8%; justify-content: flex-end; align-items: center; }
  .p-biz-col__upper:nth-child(2) { flex-direction: row-reverse; }
  .p-biz-col__upper:nth-child(3) { justify-content: center; padding-bottom: clamp(120px, 20%, 240px); }
  .p-biz-col__upper + * { padding-top: clamp(8rem, 8.5%, 10rem); } }
@media screen and (max-width: 520px) { .p-biz-col__upper { flex-direction: column; align-items: center; padding-bottom: 5em; }
  .p-biz-col__upper:nth-child(3) { justify-content: center; padding-bottom: clamp(120px, 20%, 240px); }
  .p-biz-col__upper__text { display: contents; }
  .p-biz-col__upper h3 { order: 1; }
  .p-biz-col__upper p { order: 3; }
  .p-biz-col__upper > div { order: 2; } }
@media all and (min-width: 521px) { .p-biz-col__lower { padding-top: clamp(4rem, 9vw, 6rem); margin-top: clamp(1rem, 6vw, 7rem); } }
@media screen and (max-width: 520px) { .p-biz-col__lower { padding-top: 4rem; } }
.p-biz-col__lower__inner { display: flex; flex-wrap: wrap; gap: 4em 4%; width: min(1008px, 100%); margin: auto; }
@media screen and (min-width: 521px) and (max-width: 1023px) { .p-biz-col__lower__inner { padding-right: 4%; padding-left: 4%; } }
@media screen and (max-width: 520px) { .p-biz-col__lower__inner { flex-direction: column; gap: 1em 0; padding-right: 8%; padding-left: 8%; } }
.p-biz-col__lower__text { flex-basis: 44%; padding: 3em 2% 0 0; }
.p-biz-col__lower__text p { text-align: justify; line-height: 2.5; }
@media screen and (max-width: 1023px) { .p-biz-col__lower__text { padding: 0; } }
@media screen and (max-width: 768px) { .p-biz-col__lower__text p { line-height: 1.8; } }
@media screen and (max-width: 520px) { .p-biz-col__lower__text { width: 100%; } }
.p-biz-col__lower__img { flex-basis: 52%; }
.p-biz-col__lower__img img { width: 100%; }
.p-biz-col__lower__img._lower { flex-basis: 45%; padding-left: 6%; }
@media screen and (max-width: 520px) { .p-biz-col__lower__img._lower { width: 100%; padding: 0; text-align: left; }
  .p-biz-col__lower__img._lower img { width: 60%; } }
@media screen and (max-width: 520px) { .p-biz-col__lower__img { width: 100%; text-align: right; }
  .p-biz-col__lower__img img { width: 85%; } }
.p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__inner { flex-direction: row-reverse; }
@media screen and (max-width: 520px) { .p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__inner { flex-direction: column; align-items: center; } }
.p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__text { padding: 3em 0 0 2%; }
@media screen and (max-width: 1023px) { .p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__text { padding: 0; } }
.p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__img._lower { padding: 0 6% 0 0; }
@media screen and (max-width: 520px) { .p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__img._lower { width: 100%; padding: 0; text-align: right; }
  .p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__img._lower img { width: 60%; } }
@media screen and (max-width: 520px) { .p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__img { width: 100%; padding: 0; text-align: left; }
  .p-biz-col__lower:nth-of-type(2n) .p-biz-col__lower__img img { width: 85%; } }
@media screen and (max-width: 520px) { .p-biz-col__lower { flex-direction: column; align-items: center; }
  .p-biz-col__lower__text { display: contents; }
  .p-biz-col__lower h3 { order: 1; }
  .p-biz-col__lower p { order: 3; }
  .p-biz-col__lower > div { order: 2; } }

.p-biz-list ul { display: flex; flex-wrap: wrap; color: #fff; }
@media all and (min-width: 1024px) { .p-biz-list ul li { flex-basis: 25%; height: clamp(184px, 22vw, 420px); } }
@media screen and (max-width: 1023px) { .p-biz-list ul li { flex-basis: 50%; height: clamp(152px, 48vw, 352px); } }
.p-biz-list ul li a { position: relative; background: #000; width: 100%; height: 100%; overflow: hidden; display: block; }
.p-biz-list ul li a img { object-fit: cover; width: 100%; height: 100%; opacity: .6; transition: transform .5s ease-out,opacity .5s ease-out; }
.p-biz-list ul li a span { position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; text-align: center; font-weight: 700; }
@media all and (min-width: 521px) { .p-biz-list ul li a span { font-size: clamp(1.25rem, calc(1.256rem + 0.52vw), 1.875rem); } }
@media screen and (max-width: 520px) { .p-biz-list ul li a span { font-size: 1.125rem; } }
.p-biz-list ul li a span:after { content: url("data:image/svg+xml,%3Csvg width='57' height='31' viewBox='0 0 57 31' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 2L28.5 28L55 2' stroke='white' stroke-width='3'/%3E%3C/svg%3E%0A"); position: absolute; margin-top: clamp(calc(1em + 40px), calc(2em + 44%), calc(2em + 280px)); transition: transform .5s; }
@media screen and (max-width: 520px) { .p-biz-list ul li a span:after { content: url("data:image/svg+xml,%3Csvg width='25' height='16' viewBox='0 0 25 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 1L12.5 13L23 1' stroke='white' stroke-width='3'/%3E%3C/svg%3E"); } }
@media (any-hover: hover) { .p-biz-list ul li a:hover img { transform: scale(1.1); opacity: 1; }
  .p-biz-list ul li a:hover span:after { transform: translate3d(0, 0.8em, 0); } }

.p-plan-flow { width: min(820px, 100%); margin: 2em auto 0; color: #fff; font-size: clamp(1.125rem, calc(0.912rem + 0.45vw), 1.25rem); font-weight: 500; text-align: center; line-height: 70px; }
@media screen and (max-width: 520px) { .p-plan-flow { line-height: 47px; font-size: .938rem; } }
.p-plan-flow ul { background: #f3f3f3; padding: clamp(12px, 4%, 36px); display: flex; flex-direction: column; gap: 1rem; }
@media screen and (max-width: 520px) { .p-plan-flow ul { gap: .5rem; } }
.p-plan-flow ul > li:first-child { background-color: #4da1d3; }
.p-plan-flow ul > li:nth-child(2) ol { display: flex; gap: 3.5%; }
.p-plan-flow ul > li:nth-child(2) ol li { position: relative; width: 31%; line-height: calc(88px - .65em); padding-bottom: .65em; background-color: #336aaf; clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%); }
@media screen and (max-width: 520px) { .p-plan-flow ul > li:nth-child(2) ol li { line-height: calc(60px - .65em); } }
.p-plan-flow ul > li:last-child { background-color: #8dc069; }
@media screen and (max-width: 375px) { .p-plan-flow ul > li:last-child { line-height: 1.2; padding: 1em .2em; } }

.p-works__nav { width: 100%; }
@media all and (min-width: 769px) { .p-works__nav { margin-bottom: clamp(4rem, 4%, 48px); } }
.p-works__nav ul { display: flex; column-gap: min(2%, 48px); }
@media all and (min-width: 1024px) { .p-works__nav ul { justify-content: center; }
  .p-works__nav ul li a { display: block; padding: .8em 1.5em; font-size: clamp(0.875rem, 1.2vw, 1.25rem); line-height: 1; transition: background .5s; } }
@media screen and (min-width: 769px) and (max-width: 1023px) { .p-works__nav ul { justify-content: center; }
  .p-works__nav ul li a { display: block; padding: .8em 1em; font-size: clamp(0.875rem, 1.2vw, 1.25rem); line-height: 1; transition: background .5s; } }
@media screen and (min-width: 641px) and (max-width: 769px) { .p-works__nav ul { justify-content: center; column-gap: 8px; }
  .p-works__nav ul li a { padding: .8em; font-size: .875rem; line-height: 1; } }
@media screen and (min-width: 521px) and (max-width: 640px) { .p-works__nav ul { justify-content: center; column-gap: 8px; }
  .p-works__nav ul li a { padding: .8em .4em; font-size: .75rem; line-height: 1; } }
@media screen and (max-width: 520px) { .p-works__nav ul { flex-wrap: wrap; width: 92%; max-width: 320px; column-gap: 14px; row-gap: 12px; margin: 0 auto; }
  .p-works__nav ul li { width: calc(50% - 7px); }
  .p-works__nav ul li a { text-align: center; display: block; font-size: .875rem; line-height: 36px; } }
@media screen and (max-width: 520px) { .p-works__nav ul li a { font-size: .875em; } }
.p-works__nav ul a { background: #d9d9d9; }
@media (any-hover: hover) { .p-works__nav ul a:hover { background: #2c2c2c; color: #fff; } }
.p-works__list { display: grid; width: 100%; padding: 0 4%; }
@media all and (min-width: 1024px) { .p-works__list { grid-template-columns: repeat(3, 1fr); grid-column-gap: 3.5%; grid-row-gap: 100px; max-width: calc(1300px + 8%); margin: auto; } }
@media screen and (max-width: 1023px) { .p-works__list { grid-template-columns: repeat(2, 1fr); grid-column-gap: 4%; grid-row-gap: 40px; } }
.p-works__item { display: flex; flex-direction: column; }
.p-works__item__heading { display: flex; align-items: center; justify-content: center; font-size: clamp(0.875rem, 1.75vw, 1.25rem); height: 3.2rem; line-height: 1.1em; text-align: center; }
.p-works__item__heading br { display: none; }
@media all and (min-width: 769px) { .p-works__item__heading._sm { font-size: 1.05rem; } }
@media screen and (max-width: 768px) { .p-works__item__heading._w { height: 3em; }
  .p-works__item__heading._w br { display: block; }
  .p-works__item__heading._sm { font-size: .875rem; } }
@media screen and (max-width: 375px) { .p-works__item__heading { font-size: .813rem; }
  .p-works__item__heading._sm { font-size: .75rem; } }
.p-works__item__img img { width: 100%; transition: transform .5s ease-out; }
@media all and (min-width: 769px) and (any-hover: hover) { .p-works__item__img img { cursor: pointer; }
  .p-works__item__img img:hover { transform: scale(1.25); box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.2); } }

.p-works__item__label { background: #d9d9d9; padding: .5em .8em; margin: .5em 0 0 auto; line-height: 1em; width: fit-content; }
@media screen and (max-width: 768px) { .p-works__item__label { font-size: 0.875em; padding: .3em; } }

.p-sec__vision { padding-top: clamp(40px, 7vw, 80px); padding-right: 8%; padding-bottom: clamp(48px, 8.5vw, 100px); padding-left: 8%; background-image: url(../../company/images/bg_vision.jpg); background-repeat: no-repeat; background-size: cover; background-position: center center; }
.p-sec__vision h3 { margin-bottom: clamp(24px, 5vw, 64px); font-size: clamp(1.25rem, 3vw, 2.25rem); font-weight: 700; line-height: 1; color: #004d2d; text-align: center; }
.p-sec__vision p { text-align: center; }
@media all and (min-width: 1024px) { .p-sec__vision p { line-height: 2.6; letter-spacing: .1em; } }
@media all and (min-width: 521px) { .p-sec__vision p:last-child { margin-top: 1em; } }
@media screen and (max-width: 520px) { .p-sec__vision p + p { margin-top: 1em; } }
@media screen and (max-width: 375px) { .p-sec__vision p br { display: none !important; } }
.p-sec__history { padding-top: clamp(40px, 8vw, 100px); padding-right: 4%; padding-bottom: clamp(80px, 15vw, 160px); padding-left: 4%; margin-top: clamp(9rem, 8%, 12rem); background-image: url("../../company/images/bg_history.jpg"); background-repeat: no-repeat; background-size: cover; background-position: bottom center; color: #fff; }
.p-sec__history dl { display: flex; flex-wrap: wrap; margin: auto; font-size: clamp(0.875rem, calc(0.449rem + 0.9vw), 1.125rem); }
.p-sec__history dl dt { flex-basis: 45%; text-align: right; padding: 2em 2em 0 0; }
.p-sec__history dl dd { flex-basis: 55%; padding: 2em 0 0 2em; }
@media screen and (max-width: 520px) { .p-sec__history dl dt { width: 12em; text-align: left; padding: 2em 1em 0 0; display: flex; align-items: center; }
  .p-sec__history dl dt span { text-align: center; }
  .p-sec__history dl dt span._month { width: calc(100% - 1em); text-align: right; }
  .p-sec__history dl dt span._year { width: 7em; }
  .p-sec__history dl dt span._year + ._month { width: 3em; }
  .p-sec__history dl dd { padding: 2em 0 0 0; } }
@media screen and (max-width: 520px) and (max-width: 520px) { .p-sec__history dl dd { display: flex; align-items: center; width: calc(100% - 12em); } }

.p-msg { width: min(calc(1064px + 8%), 100%); display: flex; }
@media all and (min-width: 769px) { .p-msg { justify-content: space-between; } }
@media screen and (max-width: 768px) { .p-msg { flex-direction: column; } }
.p-msg__text__heading { font-size: clamp(1rem, calc(0.574rem + 0.9vw), 1.25rem); font-weight: 700; color: #004d2d; margin-bottom: 2em; }
.p-msg__text p { text-align: justify; line-height: 2.2; letter-spacing: .1em; }
@media all and (min-width: 769px) { .p-msg__text { width: 56%; } }
@media screen and (max-width: 768px) { .p-msg__text { order: 2; }
  .p-msg__text__heading { margin-bottom: 1em; }
  .p-msg__text p { line-height: 1.8; } }
@media all and (min-width: 769px) { .p-msg__img { width: 34%; } }
@media screen and (max-width: 768px) { .p-msg__img { display: contents; width: 80%; margin-bottom: 3em; } }
.p-msg__img img { width: 100%; }
@media screen and (max-width: 768px) { .p-msg__img__item { order: 1; width: max(200px, 50%); margin: 0 auto 4em; } }
.p-msg__img ._cap { margin-top: 1em; font-size: 1.25rem; text-align: center; }
@media screen and (max-width: 768px) { .p-msg__img ._cap { order: 3; font-size: 0.938rem; text-align: right; margin-top: 1em; } }

.p-company-org { display: flex; width: min(1000px, 100%); margin: auto; }
.p-company-org__parent { border-right: 1px solid #000; display: flex; align-items: center; }
.p-company-org__parent > a { position: relative; display: flex; align-items: center; width: 100%; aspect-ratio: 2/1; border: 3px solid #004d2d; background: #fff; padding: 0 2%; }
.p-company-org__parent > a img { width: 100%; }
.p-company-org__parent > a::after { content: ""; border-top: 1px solid #000; position: absolute; top: calc(50% - .5px); right: -115px; margin: 0; z-index: -1; }
.p-company-org__subsidiary ul { display: flex; flex-direction: column; width: 100%; }
.p-company-org__subsidiary ul li { display: flex; align-items: center; position: relative; background: #dfffdf; line-height: 1.2; }
.p-company-org__subsidiary ul li._orange { background: #ffbe6f; }
.p-company-org__subsidiary ul li::before { content: ""; border-top: 1px solid #000; position: absolute; top: 50%; margin: 0; z-index: -1; }
@media all and (min-width: 769px) { .p-company-org { margin-bottom: 6rem; }
  .p-company-org__parent { width: min(426px, 42.4%); padding-right: 112px; margin: 32px 0 31px; }
  .p-company-org__parent a::after { width: min(115px, 100%); }
  .p-company-org__subsidiary { width: min(574px, 57.4%); }
  .p-company-org__subsidiary ul { gap: 20px 0; padding-left: 72px; }
  .p-company-org__subsidiary ul li { width: 100%; height: 64px; font-size: 1.125rem; padding: 0 24px; }
  .p-company-org__subsidiary ul li::before { left: -72px; width: 72px; } }
@media screen and (max-width: 768px) { .p-company-org { margin-bottom: 2.5rem; padding: 0 4%; }
  .p-company-org__parent { flex-basis: 36%; padding-right: 20px; margin: 16px 0 15px; }
  .p-company-org__parent a { border: 2px solid #004d2d; }
  .p-company-org__parent a::after { width: 20px; right: -22px; }
  .p-company-org__subsidiary { flex-basis: 64%; }
  .p-company-org__subsidiary ul { gap: 5px 0; padding-left: 20px; }
  .p-company-org__subsidiary ul li { width: 100%; min-height: 32px; font-size: .825rem; padding: .5em 8px; }
  .p-company-org__subsidiary ul li::before { left: -20px; width: 20px; } }

.p-company-list { display: flex; flex-wrap: wrap; margin: auto; width: 100%; }
.p-company-list._group { justify-content: center; gap: 24px 20px; max-width: 920px; padding: 0 2%; }
.p-company-list._map { gap: 3em 8%; max-width: 850px; }
.p-company-list__item { box-sizing: border-box; position: relative; }
.p-company-list__item._border { border: 1px solid #939393; box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.25); background: #fff; }
.p-company-list__item._border p { line-height: 1.2; }
.p-company-list__item._border p + p { margin-top: .8em; }
@media all and (min-width: 521px) { .p-company-list__item._border { flex-basis: calc(50% - 12px); padding: 1.5em 2.4%; } }
@media screen and (max-width: 520px) { .p-company-list__item._border { flex-direction: column; width: 100%; padding: 1.2em 4%; }
  .p-company-list__item._border p + p { margin-top: .5em; } }
.p-company-list__item._box { width: 100%; }
@media all and (min-width: 521px) { .p-company-list__item._box { flex-basis: 46%; } }
@media screen and (max-width: 520px) { .p-company-list__item._box { width: 100%; } }
.p-company-list__item._box p { line-height: 1.4; margin-bottom: 1em; }
.p-company-list__item._box p:first-child { font-weight: 700; margin: 0; }
.p-company-list__item._box > div { background: #e4e4e4; position: relative; height: 0; padding-bottom: 70%; overflow: hidden; }
.p-company-list__item._box iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.p-company-list__headding { font-weight: 700; color: #004d2d; margin-bottom: .5em; }
.p-company-list__link { position: absolute; right: 5%; bottom: 1em; }
@media screen and (max-width: 520px) { .p-company-list__link { right: 2%; bottom: .5em; } }

.p-link-sm { display: block; width: fit-content; padding: 0 .8em; border-radius: 3px; background: #fe8b00; color: #fff; box-shadow: 1px 1px 3px 0px rgba(0, 0, 0, 0.25); font-feature-settings: "palt"; line-height: 30px; }
@media screen and (max-width: 520px) { .p-link-sm { font-size: .875rem; line-height: 26px; } }

.p-list-profile { display: flex; flex-wrap: wrap; width: 100%; line-height: 1.8; background: rgba(255, 255, 255, 0.6); }
.p-list-profile * { font-weight: 400; }
.p-list-profile > dt { width: calc(10.8em + 8%); padding: 1em 0 1em .8em; border-bottom: 1px solid #d8d8d8; }
@media screen and (max-width: 768px) { .p-list-profile > dt { flex-basis: 6em; padding: 1.2em .5em 1.2em 0; } }
.p-list-profile > dd { padding: 1.2em .8em 1.2em 0; border-bottom: 1px solid #d8d8d8; }
@media all and (min-width: 769px) { .p-list-profile > dd { flex-basis: calc(100% - 10.8em - 8%); }
  .p-list-profile > dd ._blk { padding-left: 1.5em; } }
@media screen and (max-width: 768px) { .p-list-profile > dd { flex-basis: calc(100% - 6em); }
  .p-list-profile > dd ._blk { display: block; } }
.p-list-profile > dd dd + dt { margin-top: .5em; }
.p-list-profile > dd a { display: inline-block; margin-left: 1em; }

.p-data { padding-top: clamp(5rem, 9%, 7rem); }
.p-data__col { display: flex; justify-content: center; padding-bottom: clamp(5rem, 10%, 8rem); }
@media all and (min-width: 769px) { .p-data__col { gap: min(138px, 24%); } }
@media screen and (max-width: 768px) { .p-data__col { gap: 40px; } }
.p-data__item { background-color: #dfffdf; }
.p-data__item p { text-align: center; }
@media all and (min-width: 521px) { .p-data__item { font-size: 1.25rem; padding: 14px 40px 20px; } }
@media screen and (max-width: 520px) { .p-data__item { font-size: 0.938rem; width: 120px; padding: 14px 10px 10px; } }
.p-data__item__heading { font-weight: 500; margin-bottom: .8rem; text-align: center; }
@media all and (min-width: 521px) { .p-data__item__heading { font-size: 1.25rem; } }
@media screen and (max-width: 520px) { .p-data__item__heading { font-size: 0.938rem; } }
.p-data__item__inner { font-weight: 400; background-color: #fff; margin: auto; }
@media all and (min-width: 521px) { .p-data__item__inner { width: 140px; height: 76px; padding: .7em; } }
@media screen and (max-width: 520px) { .p-data__item__inner { width: 80px; padding: .5em; } }
.p-data__item__inner span { color: #fe8b00; font-weight: 700; line-height: 1; }
@media all and (min-width: 521px) { .p-data__item__inner span { font-size: 2.5rem; } }
@media screen and (max-width: 520px) { .p-data__item__inner span { font-size: 2rem; } }
.p-data__chart { text-align: center; }
.p-data__chart img { width: min(732px, 100%); }
.p-data__chart__heading { font-size: 1.25rem; font-weight: 500; margin-bottom: .8rem; }
.p-data__license { display: flex; justify-content: center; gap: 72px; width: min(732px, 100%); padding: 32px 12px; margin: auto; border-color: #dfffdf; border-style: solid; border-top-width: 20px; border-right-width: 30px; border-bottom-width: 20px; border-left-width: 30px; background: #fff url(../images/bg_license_grid.png); }
.p-data__license__bar img { height: 600px !important; width: auto; }
.p-data__license__list ul li { display: flex; justify-content: space-between; position: relative; padding: 0 .8rem; width: 270px; line-height: 43px; background-color: #ffe7ca; }
.p-data__license__list ul li:before { content: ""; position: absolute; left: -100px; top: 50%; border-top: 1px solid #000; width: 100px; height: 1px; padding-left: 100px; }
.p-data__license__list ul li:first-child { margin-top: 42px; }
.p-data__license__list ul li:nth-child(2) { margin-top: 48px; }
.p-data__license__list ul li:nth-child(3) { margin-top: 46px; }
.p-data__license__list ul li:nth-child(4) { margin-top: 30px; }
.p-data__license__list ul li:nth-child(5) { margin-top: 24px; }
.p-data__license__list ul li:nth-child(6) { margin-top: 8px; }
.p-data__license__list ul li:nth-child(7), .p-data__license__list ul li:nth-child(8) { margin-top: 4px; }
.p-data__license__list ul li:nth-child(9) { margin-top: 4px; }
.p-data__license__list ul li:nth-child(9):before { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='22' viewBox='0 0 100 22'%3E%3Cg%3E%3Cpolyline points='0 .5 50.5 .5 50.5 21.5 100 21.5' style='fill: none; stroke: %23251e1c; stroke-miterlimit: 10;'/%3E%3C/g%3E%3C/svg%3E"); position: absolute; left: -200px; top: -2px; border: none; }
.p-data__license__list ul li:nth-child(10) { margin-top: 4px; }
.p-data__license__list ul li:nth-child(10):before { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='42' viewBox='0 0 100 42'%3E%3Cg%3E%3Cpolyline points='0 .5 50.5 .5 50.5 41.5 100 41.5' style='fill: none; stroke: %23251e1c; stroke-miterlimit: 10;'/%3E%3C/g%3E%3C/svg%3E"); position: absolute; left: -200px; top: -18px; border: none; }
.p-data__license__list ul li strong { font-size: 1.25rem; font-weight: 700; color: #e94040; }
@media screen and (max-width: 520px) { .p-data__license { gap: 24px; width: 100%; padding: 24px 0; border-right-width: 12px; border-left-width: 12px; }
  .p-data__license__bar img { height: 326px !important; width: auto; }
  .p-data__license__list ul li { width: 184px; line-height: 24px; padding: 0 .4em; letter-spacing: 0; white-space: nowrap; }
  .p-data__license__list ul li:before { content: ""; position: absolute; left: -46px; top: 50%; border-top: 1px solid #000; width: 46px; height: 1px; padding-left: 46px; }
  .p-data__license__list ul li:first-child { margin-top: 22px; }
  .p-data__license__list ul li:nth-child(2) { margin-top: 26px; }
  .p-data__license__list ul li:nth-child(3) { margin-top: 24px; }
  .p-data__license__list ul li:nth-child(4) { margin-top: 14px; }
  .p-data__license__list ul li:nth-child(5) { margin-top: 12px; }
  .p-data__license__list ul li:nth-child(6) { margin-top: 6px; }
  .p-data__license__list ul li:nth-child(7), .p-data__license__list ul li:nth-child(8) { margin-top: 2px; }
  .p-data__license__list ul li:nth-child(9) { margin-top: 2px; }
  .p-data__license__list ul li:nth-child(9):before { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='14' viewBox='0 0 46 14'%3E%3Cg%3E%3Cpolyline points='46 13.5 31.04 13.5 31.04 .5 0 .5' style='fill: none; stroke: %23000; stroke-miterlimit: 10;'/%3E%3C/g%3E%3C/svg%3E"); left: -92px; top: -4px; border: none; }
  .p-data__license__list ul li:nth-child(10) { margin-top: 2px; }
  .p-data__license__list ul li:nth-child(10):before { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='22' viewBox='0 0 46 22'%3E%3Cg%3E%3Cpolyline points='46 21.5 31.04 21.5 31.04 .5 0 .5' style='fill: none; stroke: %23000; stroke-miterlimit: 10;'/%3E%3C/g%3E%3C/svg%3E"); position: absolute; left: -92px; top: -10px; border: none; }
  .p-data__license__list ul li span { font-size: .75rem; }
  .p-data__license__list ul li strong { font-size: .875rem; } }
@media screen and (max-width: 340px) { .p-data__license { justify-content: space-around; gap: 0; }
  .p-data__license__list ul li { width: fit-content; }
  .p-data__license__list ul li span { font-size: .7rem; padding-right: .5em; }
  .p-data__license__list ul li strong { font-size: .75rem; } }

.p-env__lead { display: flex; gap: 8%; width: min(1048px, 100%); margin-right: auto; margin-left: auto; }
@media all and (min-width: 521px) { .p-env__lead { align-items: center; } }
@media screen and (max-width: 520px) { .p-env__lead { flex-direction: column; } }
@media all and (min-width: 521px) { .p-env__lead__text { width: 48%; padding-top: 3em; } }
@media screen and (max-width: 520px) { .p-env__lead__text { display: contents; width: 100%; } }
.p-env__lead__text h3 { font-size: clamp(1rem, calc(0.675rem + 0.69vw), 1.5rem); font-weight: 700; color: #004d2d; margin-bottom: 2em; }
@media screen and (max-width: 520px) { .p-env__lead__text h3 { order: 1; } }
.p-env__lead__text p { text-align: justify; }
.p-env__lead__text p strong { font-weight: 700; padding-left: 1em; color: #004d2d; }
@media screen and (max-width: 520px) { .p-env__lead__text p { order: 3; }
  .p-env__lead__text p + p { margin-top: 1em; } }
.p-env__lead__img { position: relative; aspect-ratio: 1/1.1; }
@media all and (min-width: 521px) { .p-env__lead__img { width: 44%; } }
@media screen and (max-width: 520px) { .p-env__lead__img { width: 70%; margin: 0 auto 2em; order: 2; } }
.p-env__lead__img img { width: 100%; }
.p-env__lead__img ._left { width: 70%; position: absolute; top: 0; left: 0; }
.p-env__lead__img ._right { width: 58%; position: absolute; bottom: 0; right: 0; }
@media screen and (max-width: 520px) { .p-env__lead__img ._right { width: 54%; } }
.p-env__title { width: min(1200px, 92%); }
@media screen and (max-width: 520px) { .p-env__title { width: 96%; } }
.p-env__title__img { position: relative; }
.p-env__title__img picture > img { object-fit: cover; width: 100%; }
.p-env__title__img ._label { position: absolute; top: 0; right: 0; font-size: .938rem; color: #fff; line-height: 1; padding: .8em; background-color: #d00505; }
@media screen and (max-width: 520px) { .p-env__title__img ._label { font-size: .875rem; padding: .5em; } }
.p-env__title__img._reverse { margin: auto; right: 0; }
.p-env__title__logo { position: absolute; right: 1%; }
@media all and (min-width: 521px) { .p-env__title__logo { bottom: max(-30px, -2.5vw); } }
@media screen and (max-width: 520px) { .p-env__title__logo { bottom: .25rem; } }
.p-env__title__logo img { width: clamp(248px, 50vw, 584px); }
.p-env__title h2 { text-align: right; font-size: clamp(0.875rem, 2vw, 1.5rem); }
@media all and (min-width: 521px) { .p-env__title h2 { width: min(1200px, 99%); margin: max(30px, 2.5vw) 0 clamp(4rem, 7vw, 5rem); } }
@media screen and (max-width: 520px) { .p-env__title h2 { width: 100%; margin: .5em 0 3rem; } }
.p-env__title h2 strong { font-weight: 700; padding-left: 1em; }
.p-env__title._hgu { margin-left: auto; margin-right: 0; }
.p-env__title._hgu h2 { text-align: left; padding-left: 1%; }
.p-env__title._hgu .p-env__title__logo { left: 1%; right: auto; }
.p-env__text { width: min(640px, 92%); margin: 0 auto clamp(2.5rem, 6vw, 6rem); }
@media screen and (max-width: 520px) { .p-env__text { padding-right: 4%; padding-left: 4%; } }
.p-env__mov { width: min(744px, 92%); margin: 0 auto clamp(8rem, 14vw, 10rem); }
.p-env__mov iframe { width: 100%; aspect-ratio: 16/9; }
.p-env__feat { padding-top: clamp(1.75rem, 3vw, 3rem); padding-bottom: clamp(2.8rem, 5vw, 6rem); width: 100%; background-repeat: no-repeat; background-size: cover; background-position: center center; text-align: center; }
@media screen and (max-width: 520px) { .p-env__feat { padding-right: 4%; padding-left: 4%; } }
.p-env__feat._sgu { background-image: url("../../environment/images/bg_feat_sgu.jpg"); }
@media screen and (max-width: 520px) { .p-env__feat._sgu { background-position: left -300px center; } }
.p-env__feat._hgu { background-image: url("../../environment/images/bg_feat_hgu.jpg"); }
@media screen and (max-width: 520px) { .p-env__feat._hgu { background-position: left -100px center; } }
.p-env__feat h3 { margin-bottom: clamp(1.75rem, 3vw, 3rem); font-size: clamp(1.5rem, calc(-0.203rem + 3.6vw), 2.5rem); font-weight: 700; color: #fff; }
.p-env__feat img { width: min(1400px, 100%); }
.p-env__feat._hgu img { width: min(1100px, 100%); }
.p-env__system { padding: 0 4%; }
@media all and (min-width: 1024px) { .p-env__system p { text-align: center; } }
@media screen and (max-width: 520px) { .p-env__system { padding: 0 8%; } }
.p-env__system__flow { overflow-x: auto; margin: 0 auto 4rem; padding-bottom: 1em; width: 100%; }
.p-env__system__flow img { width: 100%; }
@media all and (min-width: 769px) { .p-env__system__flow { width: min(1456px, 100%); }
  .p-env__system__flow img { width: 100%; } }
@media screen and (max-width: 768px) { .p-env__system__flow { width: 100%; }
  .p-env__system__flow img { width: clamp(1200px, 100%, 1456px); } }
.p-env__system h2 { color: #004d2d; font-size: clamp(1rem, calc(-0.703rem + 3.6vw), 2rem); font-weight: 700; margin: 0 auto 3em; width: fit-content; font-feature-settings: "palt"; }
@media screen and (max-width: 520px) { .p-env__system h2 { text-align: center; } }
.p-env__info { display: flex; gap: 8%; width: min(calc(1288px + 8%), 100%); margin: 0 auto; }
@media all and (min-width: 521px) { .p-env__info { align-items: center; padding: clamp(5rem, 8vw, 12rem) 4% 0; } }
@media screen and (max-width: 520px) { .p-env__info { flex-direction: column; padding: 6rem 8% 0; } }
.p-env__info__img { position: relative; flex-basis: 48%; aspect-ratio: 4/3; }
.p-env__info__img img { width: 100%; }
.p-env__info__img ._left { width: 48%; position: absolute; top: 0; left: 0; }
.p-env__info__img ._right { width: 78%; position: absolute; bottom: 0; right: 0; }
@media screen and (max-width: 520px) { .p-env__info__img { order: 2; width: 92%; margin: 0 auto 2rem; } }
.p-env__info__text { flex-basis: 44%; }
.p-env__info__text p { text-align: justify; margin-bottom: 2rem; }
.p-env__info__text h3 { color: #004d2d; font-size: clamp(1rem, calc(0.351rem + 1.37vw), 2rem); font-weight: 700; margin-bottom: 2rem; }
@media screen and (max-width: 520px) { .p-env__info__text h3 { text-align: center; } }
.p-env__info__text ul li + li { margin-top: 1.5rem; }
.p-env__info__text ul li a { color: #1900ff; text-decoration: underline; transition: opacity .5s; }
@media (any-hover: hover) { .p-env__info__text ul li a:hover { opacity: .7; } }
@media screen and (max-width: 520px) { .p-env__info__text { display: contents; width: 100%; padding: 0 8%; }
  .p-env__info__text h3 { order: 1; }
  .p-env__info__text p { order: 3; }
  .p-env__info__text ul { order: 4; } }

.p-top-intro { padding-top: clamp(48px, 7vw, 128px); padding-right: auto; padding-bottom: clamp(48px, 7vw, 128px); padding-left: auto; background-image: url("../../images/bg_fuji.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center; text-align: center; }
.p-top-intro h2 { margin-bottom: clamp(1.75rem, 3vw, 3rem); font-size: clamp(1.125rem, calc(0.232rem + 1.89vw), 2.5rem); font-weight: 700; text-shadow: 0px 4px 4px rgba(255, 255, 255, 0.4); }
.p-top-intro p { font-weight: 500; line-height: 2.8; }
.p-top-intro p + p { margin-top: 2rem; }
@media screen and (max-width: 520px) { .p-top-intro p { line-height: 1.8; }
  .p-top-intro p + p { margin-top: 1rem; } }

.p-top-feat { padding-top: clamp(48px, 7vw, 128px); padding-bottom: clamp(48px, 7vw, 128px); }
.p-top-feat:nth-child(2n-1) { background: #dfffdf; }

.p-top-col { display: flex; justify-content: center; padding-right: 4%; padding-left: 4%; }
@media screen and (max-width: 520px) { .p-top-col { padding-right: 8%; padding-left: 8%; } }
.p-top-col__title { margin-bottom: 2.5rem; margin-left: calc(50% – 50vw); width: calc(50% + 50vw); }
.p-top-col__title ._en { margin-left: 0; }
.p-top-col__title ._ja { padding-bottom: .5em; margin-left: 0; }
@media all and (min-width: 521px) { .p-top-col__title:after { right: 0; } }
@media screen and (min-width: 521px) and (max-width: 768px) { .p-top-col__title ._en, .p-top-col__title ._ja { text-align: left; }
  .p-top-col__title:after { bottom: 2.2rem; } }
@media screen and (max-width: 520px) { .p-top-col__title { order: 1; width: max(80%, 300px); }
  .p-top-col__title:after { bottom: 2.2rem; }
  .p-top-col__title ._en { line-height: 1; margin: 0 0 .2rem 0; }
  .p-top-col__title ._ja { padding-top: .8rem; } }
.p-top-col__link { margin-top: 3em; }
@media screen and (max-width: 520px) { .p-top-col__link { margin: 2em auto 0; } }
.p-top-col__inner { display: flex; column-gap: 8%; width: min(984px, 100%); }
@media screen and (max-width: 520px) { .p-top-col__inner { flex-direction: column; } }
.p-top-col__image { flex-basis: 47%; min-width: 240px; text-align: center; }
@media screen and (max-width: 520px) { .p-top-col__image { order: 2; padding: 0 15% 2em; } }
.p-top-col__image img { width: 100%; object-fit: cover; }
.p-top-col__image img._small { width: 80%; }
.p-top-col__image__inner { display: flex; gap: 6%; }
.p-top-col__image__inner ._child { flex-basis: 47%; }
.p-top-col__image__inner ._child:last-child { margin-top: clamp(24px, 3vw, 58px); }
.p-top-col__text { flex-basis: 45%; display: flex; flex-direction: column; }
@media screen and (max-width: 520px) { .p-top-col__text { display: contents; } }
.p-top-col__text > p { width: min(480px, 100%); text-align: justify; }
@media screen and (max-width: 520px) { .p-top-col__text > p { order: 3; max-width: 100%; }
  .p-top-col__text > p + div { order: 4; } }

.p-app-list { position: relative; margin-top: clamp(2rem, 7vw, 5rem); }
.p-app-list::before { content: ""; position: absolute; top: calc(50% - 5px); left: 0; width: 100%; border-top: 10px solid #fff; }
@media screen and (max-width: 520px) { .p-app-list::before { border-top: 5px solid #fff; top: calc(50% - 2px); } }
.p-app-list ul { display: flex; justify-content: center; gap: 20px; }
.p-app-list ul li { width: clamp(140px, 15vw, 160px); }
.p-app-list ul li button { background-image: linear-gradient(180deg, #feb965, #ed9035); color: #fff; width: 100%; aspect-ratio: 4/3; border: 5px solid #fff; border-radius: 10px; font-weight: 700; line-height: 1.1; text-align: center; filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25)); transition: transform .5s; display: flex; flex-direction: column; justify-content: center; align-items: center; }
@media (any-hover: hover) { .p-app-list ul li button:hover { transform: scale(1.1); } }
.p-app-list ul li button span { background-repeat: no-repeat; background-position: center top; }
@media all and (min-width: 769px) { .p-app-list ul li button span { padding-top: 60px; } }
@media screen and (min-width: 521px) and (max-width: 768px) { .p-app-list ul li button span { padding-top: 50px; background-size: auto 70%; } }
@media screen and (max-width: 520px) { .p-app-list ul li button span { padding-top: 40px; background-size: auto 64%; } }
.p-app-list ul li:first-child button span { background-image: url(../../images/ico_app01.png); }
.p-app-list ul li:nth-child(2) button span { background-image: url(../../images/ico_app02.png); }
.p-app-list ul li:nth-child(3) button span { background-image: url(../../images/ico_app03.png); }
.p-app-list ul li:nth-child(4) button span { background-image: url(../../images/ico_app04.png); }
@media screen and (max-width: 520px) { .p-app-list ul li:nth-child(4) button span { padding-top: 30px; background-size: auto 50%; } }
@media screen and (min-width: 521px) and (max-width: 768px) { .p-app-list ul li button { font-size: .875rem; } }
@media screen and (max-width: 520px) { .p-app-list ul { gap: 3%; padding: 0 8% 0; margin-top: 3em; }
  .p-app-list ul li button { aspect-ratio: 1/1; font-size: .8125rem; border-width: 3px; } }
@media screen and (max-width: 375px) { .p-app-list ul { flex-wrap: wrap; column-gap: 4%; row-gap: 1em; width: 100%; padding: 0 8%; }
  .p-app-list ul li { width: 32%; } }

.p-modal__title { font-size: clamp(1.125rem, calc(0.486rem + 1.35vw), 1.5rem); font-weight: 700; color: #004d2d; text-align: center; margin-bottom: 3em; }
.p-modal__text p { line-height: 1.8; text-align: justify; }
@media all and (min-width: 769px) { .p-modal__text._narrow { width: min(584px, 84%); margin-right: auto; margin-left: auto; } }
.p-modal__text ._w { background: rgba(255, 255, 255, 0.5); padding: 1em 1.5em; }
.p-modal__img { display: flex; align-items: center; width: min(448px, 84%); margin: 0 auto 3em; }
.p-modal__img._col1 { gap: 16%; width: min(440px, 84%); }
.p-modal__img._col1 ._child { flex-basis: 42%; }
.p-modal__img._col2 { gap: 8%; width: min(560px, 84%); }
.p-modal__img._col2 ._child:first-child { flex-basis: 58%; }
.p-modal__img._col2 ._child:nth-child(2) { flex-basis: 34%; }
.p-modal__img img { width: 100%; }
.p-modal__close { position: absolute; top: 20px; right: 20px; width: 25px; height: 25px; background: #fe8b00; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cg%3E%3Cpath d='M8,6.98l-1.02,1.02-2.98-2.98-2.98,2.98-1.02-1.02,2.98-2.98L0,1.02,1.02,0l2.98,2.98L6.98,0l1.02,1.02-2.98,2.98,2.98,2.98Z' style='fill: %23fff;'/%3E%3C/g%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center center; text-indent: -999px; overflow: hidden; box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.25); z-index: 1; }
.p-modal__link { margin-top: 2em; }
.p-modal__list__item:not(:first-child) { margin-top: 2em; }
.p-modal__list__item h3 { font-size: clamp(1.125rem, calc(0.912rem + 0.45vw), 1.25rem); font-weight: 700; color: #fe8b00; }
.p-modal__sdgs { gap: 3%; }
@media all and (min-width: 769px) { .p-modal__sdgs { display: flex; } }
.p-modal__sdgs__text { flex-basis: 70%; }
.p-modal__sdgs__text ul li { position: relative; padding-left: .8em; margin-top: .5em; }
.p-modal__sdgs__text ul li:before { content: ""; position: absolute; top: calc( 1em - 7px); left: 0; width: 5px; height: 5px; background-color: #000; border-radius: 50%; }
.p-modal__sdgs__icon ul { display: flex; gap: 16px; }
.p-modal__sdgs__icon img { width: 56px; }
@media screen and (max-width: 768px) { .p-modal__sdgs__icon { margin-top: 1em; } }

.p-slide ul li { margin: 0 1vw; }
.p-slide ul li img { width: 100%; }
.p-slide__link { margin-top: clamp(48px, 5vw, 88px); padding-bottom: 5px; }
.p-slide__link a { margin: auto; }

.contact-form { width: min(624px, 84%); margin: auto; }
.contact-form dl { width: 100%; }
.contact-form dl dt { margin-bottom: .5em; font-size: clamp(0.938rem, calc(0.816rem + 0.26vw), 1.125rem); font-weight: 700; }
.contact-form dl dd { width: 100%; margin-bottom: 2em; }
.contact-form._confirm dl { margin-bottom: 4em; }
.contact-form._confirm dl dd { border-bottom: 1px solid #d3d3d3; padding-bottom: 2em; }
.contact-form .label-required { font-size: .75em; }
.contact-form__text { margin-bottom: 3rem; }
.contact-form__text p { font-size: clamp(0.938rem, calc(0.816rem + 0.26vw), 1.125rem); text-align: center; }
.contact-form__text p._required { color: #fe8b00; }
@media screen and (max-width: 768px) { .contact-form dd { margin-bottom: 1em; } }

.label-required { color: #fe8b00; }

input[type="text"], input[type="tel"], input[type="email"], textarea { padding: 0.9em; outline: none; width: 100%; background-color: #f3f3f3; border: 1px solid #cbcbcb; }

input[type="text"]:focus, input[type="tel"]:focus, input[type="email"]:focus, textarea:focus { border: 1px solid #fe8b00; background-color: #fff; }

form select { width: 100%; padding: 0.9em; background-color: #f3f3f3; border: 1px solid #cbcbcb; }
form .select-container { position: relative; width: clamp(240px, 70%, 352px); }
form .select-container::before { position: absolute; top: 50%; right: 15px; transform: translateY(-50%); content: "▼"; font-size: .8em; color: #2c2c2c; }
form textarea { padding: 1em; width: 100%; background-color: #f3f3f3; }
form textarea::-webkit-scrollbar { overflow: hidden; width: 16px; background-color: #ddd; }
form textarea::-webkit-scrollbar:horizontal { height: 10px; }
form form textarea::-webkit-scrollbar-button { display: none; }
form textarea::-webkit-scrollbar-thumb { overflow: hidden; -webkit-border-radius: 8px; border-radius: 8px; background: #999; }
form .radio-button input[type="radio"] { display: none; }
form .radio-button label { position: relative; display: inline-block; padding: 3px 3px 3px 20px; margin-right: 1.5em; cursor: pointer; }
form .radio-button label::before, form .radio-button label::after { position: absolute; content: ''; top: 50%; border-radius: 100%; -webkit-transition: all .2s; transition: all .2s; }
form .radio-button label::before { left: 0; width: 14px; height: 14px; margin-top: -8px; background: #f3f3f3; border: 1px solid #ccc; }
form .radio-button label:hover::before { background: #fff; }
form .radio-button label::after { opacity: 0; left: 4px; width: 8px; height: 8px; margin-top: -4px; background: #06462c; -webkit-transform: scale(2); transform: scale(2); }
form .radio-button input[type="radio"]:checked + label::before { background: #fff; border: 1px solid #06462c; }
form .radio-button input[type="radio"]:checked + label::after { opacity: 1; -webkit-transform: scale(1); transform: scale(1); }
form input[type="text"].error, form input[type="tel"].error, form input[type="email"].error, form textarea.error { border: 1px solid #c00; background: #ffe2e2; }
form input[type="text"].error::placeholder, form input[type="tel"].error::placeholder, form input[type="email"].error::placeholder, form textarea.error::placeholder { color: #c00; }

.on { display: none; }

.btn-area { text-align: center; width: 100%; padding-top: .5em; }

.btn-area p { padding-bottom: 3em; text-align: left; }

.btn-area input[type="checkbox"] { display: none; font-size: 0.5em; }

.btn-area label { position: relative; display: inline-block; padding: 3px 3px 3px 22px; cursor: pointer; -webkit-transition: all .2s; transition: all .2s; }

.btn-area label::before, .btn-area label::after { position: absolute; content: ''; -webkit-transition: all .2s; transition: all .2s; }

.btn-area label::before { top: 50%; left: 0; width: 14px; height: 14px; margin-top: -8px; background: #f4f4f4; border: 1px solid #ccc; border-radius: 3px; }

.btn-area label::after { opacity: 0; top: 50%; left: 3px; width: 8px; height: 4px; margin-top: -4px; border-left: 2px solid #06462c; border-bottom: 2px solid #06462c; -webkit-transform: rotate(-45deg) scale(0.5); transform: rotate(-45deg) scale(0.5); }

.btn-area label:hover::before { background: #fff; }

.btn-area input[type="checkbox"]:checked + label::before { background: #fff; border: 1px solid #06462c; }

.btn-area input[type="checkbox"]:checked + label::after { opacity: 1; -webkit-transform: rotate(-45deg) scale(1); transform: rotate(-45deg) scale(1); }

#submit-button, #send-button { width: clamp(164px, 45%, 280px); padding: 20px 0; margin-bottom: 3px; font-size: 1.5rem; font-weight: 700; letter-spacing: .2em; color: #fff; background-color: #fe8b00; border: none; box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.25); cursor: pointer; }
@media screen and (max-width: 520px) { #submit-button, #send-button { padding: 12px 0; font-size: 1rem; } }

#submit-button:disabled { background-color: #eee; cursor: not-allowed; color: #ccc; font-weight: 600; border: none; }

a.return-button { padding: 20px 0; margin: 0 auto; font-size: 1.2em; width: clamp(164px, 45%, 280px); border: 1px solid #ccc; background-color: #fff; display: block; }

a.return-button:hover { background-color: #f1f1f1; }

a.return-button span { padding-right: 0.3em; font-size: 1.5rem; }

textarea.private-policy { border: 1px solid #999; background-color: #fff; height: 200px; margin-top: 2em; padding: 1.5em; box-shadow: 0 #fff !important; box-shadow: none; }

label.error { color: #c00; }

.u-txa__left { text-align: left; }
.u-txa__center { text-align: center !important; }
.u-txa__right { text-align: right; }

.u-pd__top__\[1em\] { padding-top: 1em !important; }
.u-pd__top__\[2em\] { padding-top: 2em !important; }
.u-pd__top__\[3em\] { padding-top: 3em !important; }
.u-pd__top__\[4em\] { padding-top: 4em !important; }

.u-pd__left__\[1em\] { padding-left: 1em; }
.u-pd__left__\[2em\] { padding-left: 2em; }
.u-pd__left__\[3em\] { padding-left: 3em; }
.u-pd__left__\[4em\] { padding-left: 4em; }

.u-pd__right__\[1em\] { padding-left: 1em; }
.u-pd__right__\[2em\] { padding-left: 2em; }
.u-pd__right__\[3em\] { padding-left: 3em; }
.u-pd__right__\[4em\] { padding-left: 4em; }

.u-mg__bottom__none { margin-bottom: 0; }
.u-mg__bottom__\[1em\] { margin-bottom: 1em; }
.u-mg__bottom__\[2em\] { margin-bottom: 2em; }
.u-mg__bottom__\[3em\] { margin-bottom: 3em; }

.u-txt__\[12px\] { font-size: 0.75rem; }
.u-txt__\[14px\] { font-size: 0.875rem; }
.u-txt__\[18px\] { font-size: 1.125rem; }
.u-txt__\[24px\] { font-size: 1.5rem; }

@media screen and (max-width: 1023px) { .u-hidden__lg { display: none; } }
@media all and (min-width: 1024px) { .u-hidden__lg--min { display: none; } }
@media screen and (max-width: 768px) { .u-hidden__md { display: none; } }
@media all and (min-width: 769px) { .u-hidden__md--min { display: none; } }
@media screen and (max-width: 520px) { .u-hidden__sm { display: none !important; } }
@media all and (min-width: 521px) { .u-hidden__sm--min { display: none !important; } }
@media screen and (max-width: 375px) { .u-hidden__xsm { display: none; } }
@media all and (min-width: 376px) { .u-hidden__xsm--min { display: none; } }

.u-link__pdf { padding-left: 26px; background-image: url(../images/ico_pdf.svg); background-size: 18px; background-repeat: no-repeat; vertical-align: middle; }
.u-link__blank:after { content: url("data:image/svg+xml,%3Csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg%3E%3Cg%3E%3Cpath d='M14.12,7.53v5.65c0,.26-.1.49-.27.67s-.4.27-.67.27H2.82c-.26,0-.5-.1-.67-.27s-.27-.4-.27-.67V2.82c0-.26.1-.5.27-.67s.4-.27.67-.27h5.65c.52,0,.94-.42.94-.94s-.42-.94-.94-.94H2.82c-.78,0-1.49.32-2,.83-.51.51-.83,1.21-.83,2v10.35c0,.78.32,1.49.83,2,.51.51,1.21.83,2,.83h10.35c.78,0,1.49-.32,2-.83s.83-1.21.83-2v-5.65c0-.52-.42-.94-.94-.94s-.94.42-.94.94Z' style='fill: %23fff;'/%3E%3Cpath d='M5.92,11.41L14.12,3.21v1.5c0,.52.42.94.94.94s.94-.42.94-.94V.94c0-.13-.03-.24-.08-.36s-.11-.22-.21-.3q-.06-.06,0,0c-.08-.08-.19-.16-.3-.21C15.3.03,15.18,0,15.06,0h-3.76C10.78,0,10.35.42,10.35.94s.42.94.94.94h1.5L4.59,10.08c-.37.37-.37.96,0,1.33s.96.37,1.33,0Z' style='fill: %23fff;'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); display: inline-block; vertical-align: middle; margin-left: .4em; }
.u-link__orange { display: block; padding: 0 .8em; background: #fe8b00; color: #fff; box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.25); margin-bottom: 5px; font-feature-settings: "palt"; font-weight: 500; text-align: center; transition: transform .5s ease-out; }
@media (any-hover: hover) { .u-link__orange:hover { transform: scale(1.1); opacity: 1; } }
.u-link__orange._md { line-height: 1; width: clamp(194px, 30vw, 260px); padding-top: clamp(1.125rem, 4vw, 1.7rem); padding-bottom: clamp(1.125rem, 4vw, 1.7rem); font-size: 1rem; }
.u-link__orange._sm { width: 160px; margin-top: 2em; padding-top: clamp(0.875rem, 1.5vw, 1rem); padding-bottom: clamp(0.875rem, 1.5vw, 1rem); }
.u-link__orange._r { margin-left: auto; margin-right: 0; }

.js-hidden { display: none; }

@media all and (min-width: 1024px) { .js-show { display: grid !important; } }
@media screen and (max-width: 1023px) { .js-show { display: none; } }

.js-plus { position: absolute; top: 0; right: 0; width: 60px; height: 60px; z-index: 1; }
.js-plus:before { content: ""; position: absolute; top: 29px; left: 18px; height: 2px; width: 24px; background: #000; transition: all .5s; }
.js-plus:after { content: ""; position: absolute; top: 29px; left: 18px; height: 2px; width: 24px; background: #000; transition: all .5s; -webkit-transform: rotate(-90deg); transform: rotate(-90deg); }
.js-plus._active:after { -webkit-transform: rotate(0deg); transform: rotate(0deg); }

.js-animate._fade-in-up { opacity: 0; transition: transform .5s ease-out,opacity 1s ease-in; transform: translate(0, 20px); -webkit-transform: translate(0, 20px); transition-delay: calc(var(--iv) * 0.1s); }
.js-animate._fade-in-up._action { opacity: 1.0; transform: rotate(0deg); -webkit-transform: rotate(0deg); }
.js-animate._fade-in-up._action span, .js-animate._fade-in-up._action ._iv { opacity: 1.0; }
.js-animate._fade-in span, .js-animate._fade-in ._iv { opacity: 0; transition: opacity .8s ease; transition-delay: calc(var(--iv) * 0.1s); }
.js-animate._fade-in._action span, .js-animate._fade-in._action ._iv { opacity: 1.0; }

.fancybox__backdrop { background-color: rgba(255, 255, 255, 0.95); }

.fancybox__content { padding: 1% !important; background: none !important; width: 100% !important; left: 0 !important; }

@page { margin: 10mm; size: 210mm 297mm; }
@media print { body { -webkit-print-color-adjust: exact; width: 1000px; zoom: 0.8; }
  .header { position: absolute !important; } }
