:root{--color-text:#0d1b2a;--color-text-muted:#5a6b7a;--color-bg:#fafcfd;--color-surface:#f4f8fc;--color-surface-deep:#e8f0f7;--color-border:#d0dde9;--color-teal:#15687a;--color-teal-deep:#1e5a7a;--color-teal-bright:#3d9cb8;--color-muted-teal:#8ec8d8;--color-navy:#0d1b2a;--color-navy-deep:#040d18;--color-navy-mid:#0f2137;--color-navy-light:#153a52;--color-blue:#15687a;--color-blue-bright:#3d9cb8;--gradient-hero:linear-gradient(145deg, #040d18 0%, #0f2137 42%, #153a52 100%);--gradient-face:linear-gradient(155deg, #fff 0%, #f4f8fc 45%, #e8f0f7 100%);--gradient-cta:linear-gradient(135deg, #153a52 0%, #0f2137 55%, #040d18 100%);--gradient-accent-btn:linear-gradient(135deg, #15687a 0%, #1e5a7a 55%, #0f2137 100%);--shadow-sm:0 1px 2px #0d1b2a0f;--shadow-md:0 8px 28px #0d1b2a17;--shadow-card:0 8px 32px #00000012;--radius:12px;--max-width:1160px;--header-h:120px;--font-en:"Outfit", "Inter", system-ui, sans-serif;--ease-out-smart:cubic-bezier(.22, 1, .36, 1);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Noto Sans JP,Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box}body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);margin:0}@media (width<=639px){:root{--header-h:80px}}#root{min-height:100svh}a{color:var(--color-teal);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto;display:block}button,input,textarea{font:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{color:var(--color-text)}.skip-link{background:var(--color-navy);color:#fff;z-index:2000;border-radius:6px;padding:8px 16px;position:absolute;top:8px;left:-999px}.skip-link:focus{left:8px}.site-header{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-bottom:1px solid #d0dde9d9;position:sticky;top:0;box-shadow:0 1px #7ec8dc1f}.site-header__inner{max-width:var(--max-width);height:var(--header-h);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:0 24px;display:flex}.brand{min-width:0;color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.brand__logo{object-fit:contain;background:0 0;width:112px;height:auto}.site-footer .brand__logo{width:88px}.brand__text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.brand__name{letter-spacing:.02em;font-size:.95rem;font-weight:700}.brand__name-en{font-family:var(--font-en);color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:500}.nav{align-items:center;gap:8px;display:flex}.nav__link{color:var(--color-text);border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:500;text-decoration:none;display:none}.nav__link:hover{background:#1e5a820f;text-decoration:none}.nav__cta{background:var(--gradient-accent-btn);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out-smart,cubic-bezier(.22, 1, .36, 1)), box-shadow .25s ease;border-radius:999px;padding:10px 20px;font-size:.9rem;font-weight:600;text-decoration:none;display:none;color:#fff!important}.nav__cta:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 20px #0d1b2a26}.menu-toggle{border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-navy,#0d1b2a);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;justify-content:center;gap:5px;padding:0 10px;display:flex}.menu-toggle span{opacity:1;background:currentColor;border-radius:1px;width:100%;height:2px;display:block}.mobile-drawer{border-bottom:1px solid var(--color-border);background:#fff;padding:16px 24px 24px;display:none}.mobile-drawer--open{display:block}.mobile-drawer a{color:var(--color-text);border-bottom:1px solid var(--color-border);padding:12px 0;font-weight:500;text-decoration:none;display:block}.mobile-drawer a:last-child{border-bottom:none}.mobile-drawer .nav__cta{text-align:center;width:100%;margin-top:12px;display:inline-block}@media (width>=900px){.nav__link,.nav__cta{align-items:center;display:inline-flex}.menu-toggle{display:none}.mobile-drawer{display:none!important}}.hero{background:var(--color-navy-deep);color:#fff;position:relative;overflow:hidden}.hero__media{z-index:0;position:absolute;inset:0}.hero__img{object-fit:cover;object-position:center 38%;width:100%;height:100%;min-height:100%}.hero__overlay{z-index:1;pointer-events:none;background:linear-gradient(145deg,#040d18e6 0%,#0f2137d1 48%,#153a52c7 100%),radial-gradient(circle at 88% 12%,#50b4d229 0%,#0000 42%),radial-gradient(circle at 8% 88%,#1e5a8233 0%,#0000 48%),radial-gradient(90% 70% at 50% 100%,#15687a1f,#0000 55%);position:absolute;inset:0}.hero:after{content:"";z-index:2;opacity:.55;pointer-events:none;background:linear-gradient(90deg,#0000,#1e5a7a,#3d9cb8,#1e5a7a,#0000);height:3px;position:absolute;bottom:0;left:0;right:0}.hero__inner{max-width:var(--max-width);z-index:3;margin:0 auto;padding:clamp(48px,10vw,72px) clamp(16px,4vw,24px) clamp(64px,12vw,88px);position:relative}.hero__inner--animate>*{opacity:0;animation:hero-fade-up .75s var(--ease-out-smart,cubic-bezier(.22, 1, .36, 1)) forwards}.hero__inner--animate .hero__badge{animation-delay:50ms}.hero__inner--animate .hero__title{animation-delay:.14s}.hero__inner--animate .hero__lead{animation-delay:.24s}.hero__inner--animate .hero__actions{animation-delay:.34s}@keyframes hero-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero__badge{font-family:var(--font-en);letter-spacing:.12em;text-transform:uppercase;color:#e8f0f7f2;background:#ffffff1a;border:1px solid #7ec8dc59;border-radius:999px;margin-bottom:20px;padding:6px 14px;font-size:.8rem;font-weight:600;display:inline-block}.hero__title{letter-spacing:-.02em;color:#f0f6fa;margin:0 0 16px;font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;line-height:1.25}.hero__lead{color:#e8f0f7e6;max-width:560px;margin:0 0 32px;font-size:1.05rem;line-height:1.75}.hero__actions{flex-wrap:wrap;gap:12px;display:flex}.btn{cursor:pointer;transition:transform .25s var(--ease-out-smart,cubic-bezier(.22, 1, .36, 1)), box-shadow .25s ease, background .2s ease;border:none;border-radius:999px;justify-content:center;align-items:center;padding:14px 26px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:focus-visible{outline-offset:3px;outline:2px solid #8ec8d8e6}.btn--primary{color:var(--color-navy-deep);box-shadow:var(--shadow-md);background:#fff}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px #0000001f}.btn--ghost{color:#f0f6fa;background:0 0;border:2px solid #7ec8dc73}.btn--ghost:hover{background:#ffffff0f;border-color:#8ec8d8a6}.section{padding:72px 24px}.section--surface{background:var(--gradient-face);background-color:var(--color-surface)}.section__inner{max-width:var(--max-width);margin:0 auto}.section__head{margin-bottom:40px}.section__label{font-family:var(--font-en);letter-spacing:.2em;color:var(--color-teal);text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:600}.section__title{letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;line-height:1.3}.section__desc{max-width:640px;color:var(--color-text-muted);margin:0}.card-grid{grid-template-columns:1fr;gap:20px;display:grid}@media (width>=640px){.card-grid--2{grid-template-columns:repeat(2,1fr)}}@media (width>=900px){.card-grid--3{grid-template-columns:repeat(3,1fr)}}.card{border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);text-align:left;transition:transform .3s var(--ease-out-smart,cubic-bezier(.22, 1, .36, 1)), box-shadow .3s ease;background:#fff;border-left:3px solid #7ec8dc8c;padding:24px}.card:hover{transform:translateY(-3px);box-shadow:0 12px 40px #0d1b2a1a}.card__icon{background:linear-gradient(145deg,#1e5a821f,#3d9cb824);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:14px;font-size:1.25rem;display:flex}.card__title{margin:0 0 8px;font-size:1.05rem;font-weight:700}.card__text{color:var(--color-text-muted);margin:0;font-size:.92rem;line-height:1.65}.card--photo{border-left:none;flex-direction:column;padding:0;display:flex;overflow:hidden}.card--photo .card__photo{aspect-ratio:16/10;background:var(--color-surface-deep);position:relative;overflow:hidden}.card--photo .card__photo img{object-fit:cover;width:100%;height:100%}.card--photo .card__body{border-left:3px solid #7ec8dc8c;padding:22px 24px 24px}.strength-list{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=768px){.strength-list{grid-template-columns:repeat(2,1fr)}}.strength-item{border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;border-left:3px solid #7ec8dc73;align-items:flex-start;gap:16px;padding:20px;transition:box-shadow .3s;display:flex}.strength-item:hover{box-shadow:var(--shadow-md)}.strength-item__num{background:var(--gradient-accent-btn);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.9rem;font-weight:700;display:flex}.strength-item h3{margin:0 0 6px;font-size:1rem;font-weight:700}.strength-item p{color:var(--color-text-muted);margin:0;font-size:.9rem;line-height:1.6}.vision-statement{border:1px solid var(--color-border);border-radius:var(--radius);max-width:820px;box-shadow:var(--shadow-md);background:#fff;border-left:4px solid #7ec8dcb3;margin:0 auto;padding:40px 32px}.vision-statement__lead{letter-spacing:.01em;background:var(--gradient-accent-btn);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 28px;font-size:clamp(1.4rem,4vw,2rem);font-weight:800;line-height:1.45}.vision-statement__body p{color:var(--color-text);margin:0 0 16px;font-size:1rem;line-height:1.9}.vision-statement__body p:last-child{margin-bottom:0;font-weight:700}@media (width>=768px){.vision-statement{padding:56px}}.cta-band{background:var(--gradient-cta);color:#fff;text-align:center;padding:56px 24px;position:relative;overflow:hidden}.cta-band:before{content:"";pointer-events:none;background:radial-gradient(circle at 100% 0,#50b4d21f,#0000 45%);position:absolute;inset:0}.cta-band__inner{z-index:1;max-width:720px;margin:0 auto;position:relative}.cta-band h2{color:#f0f6fa;margin:0 0 12px;font-size:clamp(1.35rem,3vw,1.85rem);font-weight:700}.cta-band p{color:#e8f0f7e0;margin:0 0 24px}.cta-band .btn--primary{color:var(--color-navy-deep)}.company-layout{align-items:start;gap:28px;display:grid}@media (width>=900px){.company-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:stretch;gap:40px}}.company-layout__figure{border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow-md);background:#fff;margin:0;overflow:hidden}.company-layout__figure img{aspect-ratio:4/3;object-fit:cover;width:100%}.company-layout__caption{font-family:var(--font-en);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);border-top:1px solid var(--color-border);background:linear-gradient(#fafcfd 0%,#f4f8fc 100%);margin:0;padding:10px 16px;font-size:.72rem;font-weight:600;display:block}.company-grid{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=768px){.company-grid{grid-template-columns:1fr 1fr}}.dl-table{margin:0}.dl-table dt{color:var(--color-text-muted);margin:0 0 4px;font-size:.8rem;font-weight:600}.dl-table dd{margin:0 0 20px;font-weight:500}.dl-table dd:last-of-type{margin-bottom:0}.contact-form{border-radius:var(--radius);border:1px solid var(--color-border);max-width:560px;box-shadow:var(--shadow-md);background:#fff;margin:0 auto;padding:32px}.form-row{margin-bottom:18px}.form-row label{margin-bottom:6px;font-size:.88rem;font-weight:600;display:block}.form-row input,.form-row textarea{border:1px solid var(--color-border);background:#fff;border-radius:8px;width:100%;padding:12px 14px}.form-row textarea{resize:vertical;min-height:140px}.form-row input:focus,.form-row textarea:focus{border-color:var(--color-teal);outline:none;box-shadow:0 0 0 3px #15687a33}.form-note{color:var(--color-text-muted);margin:-8px 0 20px;font-size:.8rem}.form-status{border-radius:8px;margin-top:16px;padding:12px 14px;font-size:.9rem}.form-status--ok{color:#047857;background:#ecfdf5}.form-status--err{color:#b91c1c;background:#fef2f2}.site-footer{color:var(--color-text);border-top:1px solid var(--color-border);background:linear-gradient(#eef3f9 0%,#e4ebf4 100%);padding:48px 24px 32px}.site-footer__inner{max-width:var(--max-width);flex-direction:column;gap:24px;margin:0 auto;display:flex}@media (width>=768px){.site-footer__inner{flex-direction:row;justify-content:space-between;align-items:flex-start}}.site-footer .brand__name{color:var(--color-text)}.site-footer .brand__name-en{font-family:var(--font-en);color:var(--color-text-muted)}.site-footer__copy{color:var(--color-text-muted);margin:0;font-size:.82rem}.site-footer__credit{color:var(--color-text-muted);margin:8px 0 0;font-size:.72rem}.site-footer__credit a{color:var(--color-teal);font-weight:500}.site-footer__links{flex-direction:column;gap:8px;display:flex}.site-footer__links a{color:var(--color-teal);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.site-footer__links a:hover{color:var(--color-teal-deep);text-decoration:underline}.reveal{opacity:0;width:100%;transition:opacity .7s var(--ease-out-smart,cubic-bezier(.22, 1, .36, 1)), transform .7s var(--ease-out-smart,cubic-bezier(.22, 1, .36, 1));transition-delay:inherit;transform:translateY(22px)}.reveal.reveal--visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.hero__inner--animate>*{opacity:1;animation:none;transform:none}.reveal{opacity:1;transition:none;transform:none}}@media (width<=639px){.site-header__inner{gap:12px;padding:0 16px}.brand__logo{width:88px}.brand__name{font-size:.82rem;line-height:1.35}.brand__name-en{font-size:.65rem}.section{padding:56px 16px}.section__head{margin-bottom:28px}.contact-form{padding:22px 18px}.cta-band{padding:44px 16px}.site-footer{padding:40px 16px 28px;padding-bottom:max(28px, env(safe-area-inset-bottom))}.hero__actions{flex-direction:column;align-items:stretch}.hero__actions .btn{width:100%;min-height:48px}.company-layout__figure img{aspect-ratio:16/10}}@media (width>=640px) and (width<=899px){.site-header__inner{padding:0 20px}.section{padding:64px 20px}}@media (width>=900px){.brand__logo{width:112px}}
