:root{--ink:#17221d;--green:#91c975;--green-deep:#326c3e;--paper:#fff;--line:#d8ded7;--muted:#526057}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:#fff;color:var(--ink);font-family:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,summary{font:inherit}
a:focus-visible,summary:focus-visible{outline:3px solid var(--green-deep);outline-offset:4px}
.business a:focus-visible{outline-color:var(--green-deep)}
.skip-link{position:absolute;z-index:100;top:-100px;left:12px;padding:12px 20px;background:#fff;color:#111}
.skip-link:focus{top:12px}
.page-shell{width:min(100% - 72px,1400px);margin-inline:auto}
.preview-bar{padding:7px 20px;background:#e1efce;color:#2c4631;text-align:center;font-size:11px;font-weight:700;letter-spacing:.07em}
.preview-bar span{padding-inline:12px;color:#6e8e6c}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:34px;min-height:92px;padding:14px max(36px,calc((100vw - 1400px)/2));background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.brand{display:block;flex:none}.brand img{width:212px}
.desktop-nav{display:flex;align-items:center;gap:clamp(15px,2vw,35px);white-space:nowrap;font-size:13px;font-weight:700}
.desktop-nav a{padding:10px 0;transition:color .2s}
.desktop-nav a:hover{color:var(--green-deep)}
.desktop-nav .header-contact{display:inline-flex;gap:20px;align-items:center;padding:13px 18px;background:var(--ink);color:#fff}
.desktop-nav .header-contact:hover{background:var(--green-deep);color:#fff}
.mobile-menu{display:none}
.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);min-height:660px;overflow:hidden;background:#fff}
.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:56px 30px 70px max(36px,calc((100vw - 1400px)/2))}
.micro-label,.small-label{margin:0;font-size:11px;font-weight:900;line-height:1.4;letter-spacing:.17em}
.micro-label{color:var(--green-deep)}
.hero h1{position:relative;width:110%;margin:27px 0 0;font-size:clamp(48px,5.7vw,100px);font-weight:900;line-height:1.28;letter-spacing:-.06em;white-space:nowrap}
.hero h1 span{position:relative;display:inline-block;color:var(--green-deep)}
.hero h1 span:after{position:absolute;right:0;bottom:-7px;left:0;height:8px;content:'';background:var(--green);opacity:.6}
.hero-lead{margin:32px 0 0;font-size:clamp(16px,1.3vw,19px);font-weight:700;line-height:2}
.hero-pillars{display:flex;flex-wrap:wrap;gap:8px;margin-top:27px}
.hero-pillars a{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);background:#fff;font-size:11px;font-weight:900;line-height:1.4;transition:background .2s,border-color .2s,transform .2s}
.hero-pillars a span{color:var(--green-deep);font:900 10px Arial,sans-serif}
.hero-pillars a:hover{transform:translateY(-3px);border-color:var(--green-deep);background:#f3f8f0}
.hero .text-link{margin-top:21px}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;min-width:208px;margin-top:32px;padding-bottom:13px;border-bottom:2px solid var(--ink);font-size:13px;font-weight:900}
.text-link span{font-size:24px;font-weight:400;line-height:1}
.text-link:hover{color:var(--green-deep);border-color:var(--green-deep)}
.hero-visual{position:relative;min-width:0;min-height:660px;background:#fff}
.hero-photo{position:absolute;overflow:hidden;margin:0;background:#b5c6ae;box-shadow:0 15px 38px rgba(22,35,25,.13)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo figcaption{position:absolute;right:0;bottom:0;left:0;padding:10px 16px;color:#fff;background:linear-gradient(transparent,rgba(10,20,12,.72));font-size:10px;font-weight:900;letter-spacing:.15em}
.hero-photo-a{top:5%;left:1%;width:44%;height:67%;transform:rotate(-4deg)}
.hero-photo-b{top:9%;right:0;width:41%;height:51%;transform:rotate(5deg)}
.hero-photo-b img{object-position:64% center}
.hero-photo-c{right:8%;bottom:-7%;width:67%;height:45%;transform:rotate(-3deg)}
.hero-photo-c img{object-position:center 45%}
.hero-badge{position:absolute;z-index:2;top:45%;left:39%;display:grid;place-items:center;width:104px;aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 10px 30px rgba(20,50,20,.14)}
.hero-badge img{width:72%}
.hero-bottom{position:absolute;z-index:3;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:12px max(36px,calc((100vw - 1400px)/2));background:#fff;color:var(--ink);border-top:1px solid var(--line);font-size:10px;font-weight:900;letter-spacing:.15em}
.hero-bottom a{display:inline-flex;align-items:center;gap:17px}.hero-bottom a span{font-size:19px}
.section-eyebrow{display:flex;gap:23px;align-items:center;font-size:12px;font-weight:900;letter-spacing:.08em}.section-eyebrow span:first-child{color:var(--green-deep);font-family:Arial,sans-serif}
.purpose{padding-block:148px 154px}
.purpose-layout{display:grid;grid-template-columns:1.2fr .8fr;align-items:start;gap:clamp(60px,9vw,150px);margin-top:33px}
.purpose h2{margin:0;font-size:clamp(48px,5.4vw,86px);font-weight:900;line-height:1.35;letter-spacing:-.055em}
.purpose h2 span{color:var(--green-deep)}
.purpose-body{padding-top:19px}.purpose-body p{margin:0 0 22px;color:var(--muted);font-size:17px;line-height:2}.purpose-body p:first-child{color:var(--ink);font-size:19px;font-weight:700;line-height:1.9}
.business{padding-block:100px 130px;background:#fff;color:var(--ink);border-block:1px solid var(--line)}
.business .section-eyebrow span:first-child{color:var(--green-deep)}
.business-head{display:flex;align-items:end;justify-content:space-between;gap:70px;margin-top:27px}
.business-head h2{margin:0;font-size:clamp(45px,5.1vw,78px);font-weight:900;line-height:1.35;letter-spacing:-.05em}
.business-head p{max-width:445px;margin:0 0 10px;color:var(--muted);font-size:17px;line-height:2}
.business-list{margin-top:73px;border-top:2px solid var(--ink)}
.business-list a{display:grid;grid-template-columns:70px minmax(250px,1fr) minmax(230px,.7fr) 36px;gap:15px;align-items:center;min-height:126px;border-bottom:1px solid var(--line);transition:background .25s,padding .25s}
.business-list a:hover{padding-inline:16px;background:#f3f8f0}
.business-number{color:var(--green-deep);font:900 13px Arial,sans-serif}
.business-name{font-size:clamp(24px,2.5vw,38px);font-weight:900;letter-spacing:-.04em}
.business-caption{color:var(--muted);font-size:13px;line-height:1.7}
.business-arrow{font-size:30px;font-weight:400}
.web-services{overflow:hidden;background:#fff}
.web-intro{padding-block:140px 95px}
.web-intro h2{margin:34px 0 28px;font-size:clamp(52px,6.2vw,95px);font-weight:900;line-height:1.25;letter-spacing:-.06em}
.web-intro h2 span{color:var(--green-deep)}
.web-intro>p{max-width:760px;margin:0 0 0 auto;font-size:18px;font-weight:700;line-height:1.9}
.product{display:grid;grid-template-columns:1fr 1fr;min-height:650px;border-top:1px solid var(--line)}
.product-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:70px clamp(34px,7vw,130px) 70px max(36px,calc((100vw - 1400px)/2));background:#fff}
.product:nth-of-type(even) .product-copy{order:2;padding:70px max(36px,calc((100vw - 1400px)/2)) 70px clamp(34px,7vw,130px)}
.product:nth-of-type(even) .product-visual{order:1}
.product-index{font:900 12px Arial,sans-serif;letter-spacing:.16em;color:var(--green-deep)}
.product-index span{padding:0 8px;color:#9cae99}
.product-logo{max-width:100%;max-height:145px;width:auto;height:auto;object-fit:contain;object-position:left center;margin-top:44px}
.logo-tenshoku{max-width:min(390px,100%);max-height:80px}.logo-imamite{max-width:min(300px,100%);max-height:120px}.logo-moshimo{max-width:min(395px,100%);max-height:145px}.logo-petter{max-width:min(290px,100%);max-height:110px}
.product h3{margin:26px 0 20px;font-size:clamp(29px,3.1vw,49px);font-weight:900;line-height:1.43;letter-spacing:-.055em}
.product-copy>p:not(.status-chip){max-width:570px;margin:0;color:var(--muted);font-size:17px;line-height:2}
.status-chip{margin:17px 0 0;padding:7px 12px;border:1px solid #b5c9ab;color:#30653a;font-size:11px;font-weight:900;letter-spacing:.06em}
.product-link{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:250px;margin-top:30px;padding:16px 0;border-bottom:2px solid var(--ink);font-size:13px;font-weight:900}
.product-link span{font-size:23px;font-weight:400}.product-link:hover{color:var(--green-deep);border-color:var(--green-deep)}
.product-visual{position:relative;min-height:650px;overflow:hidden;margin:0;background:#d3dfd0}
.product-visual figcaption{position:absolute;right:12px;bottom:12px;z-index:3;max-width:calc(100% - 24px);padding:6px 9px;background:rgba(255,255,255,.93);color:#334037;font-size:10px;font-weight:700;line-height:1.6}
.single-photo>img{width:100%;height:100%;min-height:650px;object-fit:cover}
.product-moshimo .single-photo>img{object-position:center center}
.product-petter .single-photo>img{object-position:center center}
.tenshoku-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,1fr);gap:5px;padding:5px}
.tenshoku-grid>div{position:relative;grid-column:span 2;min-width:0;overflow:hidden}
.tenshoku-grid>div:nth-child(n+4){grid-column:span 3}
.tenshoku-grid img,.imamite-grid img{width:100%;height:100%;object-fit:cover}
.tenshoku-grid>div span,.imamite-grid>div span{position:absolute;bottom:0;left:0;z-index:2;right:0;padding:28px 13px 12px;background:linear-gradient(transparent,rgba(0,0,0,.67));color:#fff;font-size:13px;font-weight:900}
.imamite-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px}
.imamite-grid>div{position:relative;min-width:0;overflow:hidden}
.imamite-grid>div:first-child img{object-position:center 28%}
.upcoming{display:grid;grid-template-columns:.8fr 1.2fr;gap:10%;padding-block:150px 160px}
.upcoming-intro .small-label{color:var(--green-deep)}
.upcoming h3{margin:20px 0 22px;font-size:clamp(43px,4.6vw,70px);line-height:1.35;letter-spacing:-.06em}
.upcoming-intro>p{max-width:370px;margin:0;color:var(--muted);font-size:16px;line-height:2}
.upcoming-list{border-top:2px solid var(--ink)}
.upcoming-list article{position:relative;padding:28px 90px 34px 0;border-bottom:1px solid var(--line)}
.upcoming-list article>span{color:var(--green-deep);font:900 11px Arial,sans-serif;letter-spacing:.12em}
.upcoming-list h4{margin:15px 0 10px;font-size:clamp(23px,2.1vw,32px);line-height:1.45;letter-spacing:-.04em}
.upcoming-list h4 small{font-size:.56em}
.upcoming-list p{max-width:440px;margin:0;color:var(--muted);font-size:15px;line-height:1.9}
.upcoming-list strong{position:absolute;top:30px;right:0;padding:7px 9px;border:1px solid #a8c8a6;color:var(--green-deep);font-size:10px}
.business-story{padding-block:135px 145px}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(65px,9vw,150px)}
.story-number{display:block;color:#bedba5;font:900 clamp(125px,16vw,250px)/.75 Arial,sans-serif;letter-spacing:-.09em}
.story-head .small-label{margin-top:50px;color:var(--green-deep)}
.story-head h2{margin:16px 0 20px;font-size:clamp(44px,5vw,78px);font-weight:900;line-height:1.28;letter-spacing:-.06em}
.story-tagline{margin:0;font-size:clamp(21px,2.1vw,31px);font-weight:900;line-height:1.55}
.story-body{padding-top:105px}
.story-body>p:first-child{max-width:540px;margin:0;font-size:19px;font-weight:700;line-height:2}
.story-topics{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:65px}
.story-topics article{padding-top:20px;border-top:2px solid currentColor}
.story-topics span{font:900 12px Arial,sans-serif;color:var(--green-deep)}
.story-topics h3{margin:15px 0 12px;font-size:24px;letter-spacing:-.035em}
.story-topics p{margin:0;color:var(--muted);font-size:15px;line-height:1.9}
.story-note{margin:35px 0 0;color:var(--muted);font-size:13px;line-height:1.8}
.education{background:#fff;border-top:1px solid var(--line)}
.education .story-number{color:#cce7b9}
/* Education uses the same editorial photo/content rhythm as WEB services. */
.feature-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:min(100% - 72px,1400px);min-height:560px;margin:64px auto 0;border:1px solid var(--line);background:#fff}
.feature-card+.feature-card{margin-top:38px}
.feature-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:clamp(42px,6vw,92px)}
.feature-kicker{margin:0;color:var(--green-deep);font:900 12px/1.5 Arial,'Noto Sans JP',sans-serif;letter-spacing:.14em}
.feature-logo{display:block;width:auto;max-width:min(340px,100%);max-height:160px;margin-top:33px;object-fit:contain;object-position:left center}
.feature-card--reverse .feature-logo{max-width:min(160px,100%);max-height:160px}
.feature-identity{display:flex;align-items:center;gap:22px;max-width:100%;margin-top:33px}
.feature-identity .feature-logo{flex:none;margin-top:0}
.feature-brand-name{min-width:0;margin:0;color:var(--ink);font:900 clamp(27px,2.6vw,38px)/1.08 Arial,'Noto Sans JP',sans-serif;letter-spacing:-.045em}
.feature-copy h3{margin:25px 0 17px;font-size:clamp(30px,3.1vw,48px);font-weight:900;line-height:1.4;letter-spacing:-.05em}
.feature-copy>p:not(.feature-kicker):not(.feature-note){max-width:560px;margin:0;color:var(--muted);font-size:17px;line-height:2}
.feature-points{display:grid;gap:10px;max-width:560px;margin:26px 0 0;padding:0;list-style:none}
.feature-points li{position:relative;padding-left:20px;color:var(--ink);font-size:15px;font-weight:700;line-height:1.8}
.feature-points li:before{position:absolute;top:.76em;left:0;width:8px;height:8px;content:'';background:var(--green)}
.feature-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-width:min(100%,260px);margin-top:27px;padding:14px 0;border-bottom:2px solid var(--ink);font-size:13px;font-weight:900;transition:color .2s,border-color .2s}
.feature-cta:hover{color:var(--green-deep);border-color:var(--green-deep)}
.feature-note{max-width:580px;margin:23px 0 0;color:var(--muted);font-size:13px;line-height:1.8}
.feature-visual{position:relative;min-width:0;min-height:560px;overflow:hidden;margin:0;background:#f2f7ef}
.feature-visual>img{width:100%;height:100%;min-height:560px;object-fit:cover}
.feature-visual figcaption{position:absolute;right:12px;bottom:12px;z-index:2;max-width:calc(100% - 24px);padding:6px 9px;background:rgba(255,255,255,.94);color:#334037;font-size:10px;font-weight:700;line-height:1.6}
.feature-card--reverse .feature-copy{order:2}
.feature-card--reverse .feature-visual{order:1}
.closing{padding-block:145px 170px;text-align:center}
.closing .small-label{color:var(--green-deep)}
.closing h2{margin:24px 0;font-size:clamp(50px,6vw,92px);line-height:1.32;letter-spacing:-.055em}
.closing>p:not(.small-label):not(.closing-note){margin:0;font-size:16px;font-weight:700;line-height:2}
.closing-links{display:flex;justify-content:center;gap:18px;margin-top:46px}
.closing-links a{display:flex;align-items:center;justify-content:space-between;gap:35px;min-width:255px;padding:20px 23px;background:var(--ink);color:#fff;font-size:13px;font-weight:900}
.closing-links a:nth-child(2){background:var(--green-deep)}
.closing-links a:hover{background:#274e32}.closing-links a span{font-size:19px;font-weight:400}
.closing .closing-note{margin:21px 0 0;color:var(--muted);font-size:12px}
.site-footer{background:#fff;border-top:1px solid var(--line)}
.footer-inner{display:flex;align-items:center;gap:42px;min-height:145px}.footer-inner>a img{width:170px}.footer-inner nav{display:flex;gap:25px;margin-left:auto;font-size:12px;font-weight:700}.footer-inner nav a:hover{color:var(--green-deep)}.footer-inner p{margin:0;font-size:10px;color:var(--muted)}
/* Motion adds hierarchy without withholding content on browsers without scroll timelines. */
@media (hover:hover) and (pointer:fine){
  .brand img{transition:transform .35s ease}
  .brand:hover img{transform:translateY(-2px)}
  .text-link span,.product-link span,.business-arrow,.closing-links a span{display:inline-block;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
  .text-link:hover span,.product-link:hover span,.business-list a:hover .business-arrow,.closing-links a:hover span{transform:translate(5px,-4px)}
  .product-visual img{transition:transform .8s cubic-bezier(.2,.75,.2,1)}
  .product:hover .product-visual img{transform:scale(1.045)}
  .feature-visual img{transition:transform .8s cubic-bezier(.2,.75,.2,1)}
  .feature-card:hover .feature-visual img{transform:scale(1.045)}
  .feature-cta>span:last-child{display:inline-block;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
  .feature-cta:hover>span:last-child{transform:translate(5px,-4px)}
  .story-topics article{transition:border-color .25s ease,transform .3s ease}
  .story-topics article:hover{border-color:var(--green-deep);transform:translateY(-4px)}
}
@media (prefers-reduced-motion:no-preference){
  @keyframes hero-float-a{from{transform:rotate(-4deg) translateY(0)}to{transform:rotate(-3deg) translateY(-10px)}}
  @keyframes hero-float-b{from{transform:rotate(5deg) translateY(0)}to{transform:rotate(4deg) translateY(8px)}}
  @keyframes hero-float-c{from{transform:rotate(-3deg) translateY(0)}to{transform:rotate(-2deg) translateY(-9px)}}
  @keyframes hero-breathe{from{box-shadow:0 10px 30px rgba(20,50,20,.12)}to{box-shadow:0 15px 38px rgba(20,50,20,.23)}}
  @keyframes hero-intro{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
  @keyframes scroll-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
  @keyframes in-view{from{opacity:.25;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
  @keyframes image-arrive{from{opacity:.75;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
  .hero-photo-a{animation:hero-float-a 8s ease-in-out infinite alternate}
  .hero-photo-b{animation:hero-float-b 10s ease-in-out infinite alternate}
  .hero-photo-c{animation:hero-float-c 9s ease-in-out infinite alternate}
  .hero-badge{animation:hero-breathe 4s ease-in-out infinite alternate}
  .hero .micro-label{animation:hero-intro .55s ease-out both}
  .hero h1{animation:hero-intro .7s ease-out .12s both}
  .hero-lead{animation:hero-intro .7s ease-out .24s both}
  .hero .text-link{animation:hero-intro .7s ease-out .36s both}
  .hero-bottom a span{display:inline-block;animation:scroll-cue 2s ease-in-out infinite}
  @supports (animation-timeline:view()){
    .purpose-layout,.business-head,.web-intro h2,.web-intro>p,.upcoming-intro,.upcoming-list article,.story-head,.story-body,.closing h2,.closing-links{
      animation:in-view 1s linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 23%;
    }
    .product-copy>*,.feature-copy>*{
      animation:in-view 1s linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 17%;
    }
    .product-visual,.feature-visual{
      animation:image-arrive 1s linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 28%;
    }
  }
}
@media(max-width:1150px){.site-header{padding-inline:28px}.desktop-nav{gap:17px;font-size:11px}.hero h1{font-size:clamp(47px,5.5vw,74px)}.hero-copy{padding-left:36px}.product-copy,.product:nth-of-type(even) .product-copy{padding-inline:42px}.business-list a{grid-template-columns:50px minmax(210px,1fr) minmax(170px,.7fr) 30px}.business-caption{font-size:12px}.footer-inner{flex-wrap:wrap;gap:15px;padding-block:28px}.footer-inner p{width:100%}}
@media(max-width:800px){html{scroll-padding-top:70px}.page-shell{width:min(100% - 36px,640px)}.site-header{min-height:72px;padding:10px 18px}.brand img{width:137px}.desktop-nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{display:flex;align-items:center;gap:15px;padding:9px 12px;border:1px solid var(--ink);list-style:none;font-size:12px;font-weight:900;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{font-size:18px;line-height:1}.mobile-menu[open] summary span{transform:rotate(45deg)}.mobile-menu nav{position:absolute;right:0;top:calc(100% + 7px);z-index:30;display:flex;flex-direction:column;min-width:215px;padding:5px 18px;background:#fff;border:1px solid var(--line);box-shadow:0 15px 25px rgba(0,0,0,.12)}.mobile-menu nav a{padding:15px 4px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.mobile-menu nav a:last-child{border-bottom:0}.hero{display:block;min-height:0}.hero-copy{min-height:510px;padding:65px 18px 50px}.hero h1{width:100%;font-size:clamp(40px,7.2vw,65px);line-height:1.32;white-space:normal}.hero h1 span:after{height:5px}.hero-lead{margin-top:34px;font-size:14px}.hero-visual{height:450px;min-height:450px}.hero-photo-a{top:4%;left:6%;width:40%;height:67%}.hero-photo-b{top:8%;right:7%;width:38%;height:53%}.hero-photo-c{right:10%;bottom:-4%;width:62%;height:47%}.hero-badge{top:46%;left:39%;width:78px}.hero-bottom{position:relative;padding:12px 18px;font-size:9px}.purpose{padding-block:95px 110px}.purpose-layout{grid-template-columns:1fr;gap:26px}.purpose h2{font-size:clamp(43px,8vw,65px)}.purpose-body{padding:0}.business{padding-block:90px 110px}.business-head{display:block}.business-head h2{font-size:clamp(41px,7vw,65px)}.business-head p{margin:24px 0 0}.business-list{margin-top:43px}.business-list a{grid-template-columns:40px 1fr 27px;gap:10px;min-height:105px}.business-caption{display:none}.business-name{font-size:clamp(20px,4vw,31px)}.web-intro{padding-block:95px 65px}.web-intro h2{font-size:clamp(45px,8.3vw,75px)}.web-intro>p{font-size:15px}.product,.product:nth-of-type(even){display:flex;flex-direction:column}.product-copy,.product:nth-of-type(even) .product-copy{order:2;padding:55px max(18px,calc((100vw - 640px)/2)) 65px}.product-visual,.product:nth-of-type(even) .product-visual{order:1;min-height:440px;height:440px}.single-photo>img{min-height:440px}.product-logo{margin-top:27px}.product h3{font-size:clamp(30px,5.5vw,43px)}.upcoming{grid-template-columns:1fr;gap:45px;padding-block:100px}.story-grid{grid-template-columns:1fr;gap:0}.business-story{padding-block:90px 105px}.story-number{font-size:clamp(120px,24vw,175px)}.story-head .small-label{margin-top:38px}.story-body{padding-top:37px}.story-topics{margin-top:40px}.closing{padding-block:100px 115px}.closing h2{font-size:clamp(43px,8vw,67px)}.closing-links{flex-wrap:wrap}.footer-inner{align-items:flex-start;gap:25px;padding-block:38px}.footer-inner nav{margin-left:0;flex-wrap:wrap}.footer-inner p{width:100%}}
@media(max-width:520px){.preview-bar{font-size:9px;padding-inline:7px}.preview-bar span{padding-inline:5px}.hero-copy{min-height:475px;padding-top:58px}.hero h1{font-size:clamp(31px,8.8vw,47px);letter-spacing:-.065em}.hero-lead{line-height:1.9}.hero-visual{height:340px;min-height:340px}.hero-photo-a{left:5%;width:42%}.hero-photo-b{right:6%;width:41%}.hero-photo-c{right:6%;width:68%}.hero-badge{top:43%;left:39%;width:64px}.hero-photo figcaption{font-size:8px;padding:8px}.hero-bottom{font-size:8px}.hero-bottom span:first-child{max-width:190px}.purpose h2{font-size:clamp(38px,10vw,50px)}.purpose-body p:first-child{font-size:16px}.purpose-body p{font-size:14px}.business-head h2,.web-intro h2{font-size:clamp(39px,10.5vw,52px)}.business-list a{grid-template-columns:27px 1fr 23px;min-height:93px}.business-name{font-size:clamp(19px,5.3vw,27px)}.business-arrow{font-size:23px}.product-visual,.product:nth-of-type(even) .product-visual{min-height:340px;height:340px}.single-photo>img{min-height:340px}.product h3{font-size:clamp(28px,7.2vw,38px)}.product-copy>p:not(.status-chip){font-size:14px}.product-visual figcaption{right:5px;bottom:5px;max-width:calc(100% - 10px);font-size:8px}.tenshoku-grid>div span,.imamite-grid>div span{font-size:9px;padding:20px 7px 7px}.upcoming-list article{padding-right:65px}.upcoming-list strong{font-size:9px}.story-head h2{font-size:clamp(38px,9vw,52px)}.story-body>p:first-child{font-size:15px}.story-topics{grid-template-columns:1fr;gap:26px}.story-topics h3{font-size:21px}.closing h2{font-size:clamp(41px,10vw,56px)}.closing-links{display:grid;gap:10px}.closing-links a{min-width:0}.footer-inner{display:block}.footer-inner>a img{width:130px}.footer-inner nav{margin:30px 0;gap:18px}.footer-inner p{line-height:1.7}}
@media(max-width:800px){
  .feature-card,.feature-card--reverse{display:flex;flex-direction:column;width:min(100% - 36px,640px);min-height:0;margin-top:35px}
  .feature-card+.feature-card{margin-top:24px}
  .feature-visual,.feature-card--reverse .feature-visual{order:1;min-height:390px;height:390px}
  .feature-visual>img{min-height:390px}
  .feature-copy,.feature-card--reverse .feature-copy{order:2;padding:40px 34px 48px}
  .feature-copy h3{font-size:clamp(29px,5.5vw,40px)}
}
@media(max-width:520px){
  .feature-visual,.feature-card--reverse .feature-visual{min-height:300px;height:300px}
  .feature-visual>img{min-height:300px}
  .feature-copy,.feature-card--reverse .feature-copy{padding:31px 23px 37px}
  .feature-logo{max-width:min(230px,100%);max-height:90px;margin-top:24px}
  .feature-copy h3{font-size:clamp(26px,7vw,34px)}
  .feature-copy>p:not(.feature-kicker):not(.feature-note){font-size:14px}
  .feature-visual figcaption{right:6px;bottom:6px;max-width:calc(100% - 12px);font-size:8px}
  .feature-cta{width:100%;min-width:0}
}
@media(max-width:800px){
  .hero-pillars{margin-top:24px}
  .hero-pillars a{font-size:11px}
}
@media(max-width:520px){
  .hero-pillars{gap:6px}
  .hero-pillars a{padding:8px 9px;font-size:10px}
  .hero .text-link{margin-top:20px}
}
/* Make brand and explanatory copy legible without forcing horizontal overflow. */
@media(max-width:800px){
  .site-header{gap:12px}
  .brand img{width:165px}
  .hero-lead{font-size:16px}
  .purpose-body p,.business-head p{font-size:16px}
  .web-intro>p{font-size:17px}
  .product-copy>p:not(.status-chip),.upcoming-intro>p,.upcoming-list p{font-size:16px}
  .story-body>p:first-child{font-size:18px}
  .story-topics p{font-size:16px}
  .feature-logo{max-width:min(340px,100%);max-height:140px}
  .feature-card--reverse .feature-logo{max-width:min(145px,100%);max-height:145px}
  .feature-identity{gap:18px}
  .feature-brand-name{font-size:clamp(24px,4.2vw,34px)}
  .feature-copy>p:not(.feature-kicker):not(.feature-note){font-size:16px}
  .feature-points li{font-size:15px}
  .footer-inner>a img{width:160px}
}
@media(max-width:520px){
  .brand img{width:160px}
  .purpose-body p:first-child{font-size:17px}
  .story-body>p:first-child{font-size:17px}
  .feature-logo{max-width:100%;max-height:120px}
  .feature-card--reverse .feature-logo{max-width:min(125px,100%);max-height:125px}
  .feature-identity{gap:12px}
  .feature-brand-name{font-size:clamp(20px,5.4vw,27px)}
  .footer-inner>a img{width:155px}
}
@media(max-width:360px){
  .site-header{padding-inline:14px}
  .brand img{width:145px}
  .mobile-menu summary{padding:8px 10px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition:none!important;animation:none!important}
  .brand:hover img,.hero-pillars a:hover,.text-link:hover span,.product-link:hover span,.business-list a:hover .business-arrow,.closing-links a:hover span,.product:hover .product-visual img,.feature-card:hover .feature-visual img,.feature-cta:hover>span:last-child,.story-topics article:hover{transform:none!important}
}
/* Company and policy links remain visible without crowding the primary footer menu. */
.site-footer .footer-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;min-height:0;padding-block:42px}
.site-footer .footer-brand img{width:170px}
.site-footer .footer-site-nav,.site-footer .footer-legal-nav{display:flex;align-items:center;flex-wrap:wrap;gap:12px 25px;margin:0;font-size:12px;font-weight:700}
.site-footer .footer-bottom{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px 26px;border-top:1px solid var(--line);padding-top:24px}
.site-footer .footer-inner p{width:auto;margin:0;color:var(--muted)}
.site-footer .footer-heading{font-size:11px;font-weight:900;letter-spacing:.04em}
.site-footer .footer-copyright{grid-column:1/-1;font-size:10px}
@media(max-width:800px){
  .site-footer .footer-inner{grid-template-columns:1fr;gap:22px}
  .site-footer .footer-bottom{grid-column:1}
}
@media(max-width:520px){
  .site-footer .footer-inner{display:grid;padding-block:34px}
  .site-footer .footer-brand img{width:155px}
  .site-footer .footer-site-nav,.site-footer .footer-legal-nav{gap:12px 18px;margin:0}
  .site-footer .footer-bottom{grid-template-columns:1fr;gap:14px;padding-top:20px}
}
/* Readability pass: keep the 02 / ESPORTS CLUB kicker unchanged. */
.desktop-nav{font-size:14px}
.hero-pillars a{font-size:14px}
.hero-pillars a span{font-size:12px}
.text-link,.product-link,.closing-links a{font-size:16px;line-height:1.5}
.feature-cta{max-width:100%;font-size:18px;line-height:1.5;white-space:normal;overflow-wrap:break-word}
.feature-card--reverse .feature-brand-name{font-size:clamp(32px,3vw,44px);line-height:1.18}
.feature-card--reverse .feature-copy h3{font-size:clamp(33px,3.3vw,52px)}
.feature-card--reverse .feature-copy>p:not(.feature-kicker):not(.feature-note){font-size:19px}
.feature-card--reverse .feature-points li{font-size:17px}
.feature-note{font-size:14px}
.feature-card--reverse .feature-note{font-size:15px}
.preview-bar,.micro-label,.small-label,.hero-bottom,.hero-photo figcaption,.product-visual figcaption,.feature-visual figcaption{font-size:12px}
.section-eyebrow,.product-index,.story-topics span,.status-chip{font-size:13px}
.business-caption,.story-note,.closing .closing-note{font-size:14px}
.tenshoku-grid>div span,.imamite-grid>div span{font-size:14px}
.upcoming-list article>span,.upcoming-list strong{font-size:12px}
.site-footer .footer-site-nav,.site-footer .footer-legal-nav{font-size:14px}
.site-footer .footer-heading{font-size:13px}
.site-footer .footer-copyright{font-size:12px}
@media(max-width:1150px){
  .site-header{gap:16px}
  .brand img{width:190px}
  .desktop-nav{gap:14px;font-size:14px}
  .desktop-nav .header-contact{gap:12px;padding:12px 14px}
}
@media(max-width:800px){
  .mobile-menu summary{font-size:14px}
  .mobile-menu nav a{font-size:15px}
  .hero-pillars a{font-size:14px}
  .feature-card--reverse .feature-brand-name{font-size:clamp(26px,5.4vw,36px)}
  .feature-card--reverse .feature-copy h3{font-size:clamp(30px,5.8vw,43px)}
  .feature-card--reverse .feature-copy>p:not(.feature-kicker):not(.feature-note){font-size:18px}
  .feature-card--reverse .feature-points li{font-size:16px}
  .feature-card--reverse .feature-note{font-size:14px}
  .feature-cta{font-size:17px}
}
@media(max-width:520px){
  .preview-bar{font-size:11px}
  .hero-pillars a{font-size:13px}
  .hero-bottom,.hero-photo figcaption,.product-visual figcaption,.feature-visual figcaption{font-size:11px}
  .tenshoku-grid>div span,.imamite-grid>div span{font-size:12px}
  .purpose-body p,.business-head p,.product-copy>p:not(.status-chip),.feature-copy>p:not(.feature-kicker):not(.feature-note){font-size:16px}
  .feature-points li{font-size:16px}
  .feature-card--reverse .feature-brand-name{font-size:clamp(24px,5.7vw,29px)}
  .feature-card--reverse .feature-copy h3{font-size:clamp(29px,7.3vw,37px)}
  .feature-card--reverse .feature-copy>p:not(.feature-kicker):not(.feature-note){font-size:17px}
  .feature-card--reverse .feature-points li{font-size:16px}
  .feature-cta{font-size:16px;gap:14px}
  .text-link,.product-link,.closing-links a{font-size:16px}
  .site-footer .footer-site-nav,.site-footer .footer-legal-nav{font-size:14px}
}
@media(max-width:360px){
  .feature-card--reverse .feature-logo{max-width:min(98px,100%)}
  .feature-card--reverse .feature-identity{gap:10px}
}
/* Early news and the planned idea-to-service program. Both remain preview-only. */
.news-strip{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;gap:36px;padding-block:32px;border-bottom:1px solid var(--line)}
.news-strip-heading{display:flex;align-items:baseline;gap:16px}
.news-strip-heading span{color:var(--green-deep);font:900 13px Arial,sans-serif;letter-spacing:.12em}
.news-strip-heading h2{margin:0;font-size:22px;font-weight:900;letter-spacing:-.04em}
.news-strip-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:23px;min-width:0;padding:16px 0;color:var(--ink);border-bottom:1px solid var(--ink)}
.news-strip-item:hover{color:var(--green-deep);border-color:var(--green-deep)}
.news-strip-status{color:var(--green-deep);font-size:14px;font-weight:900;white-space:nowrap}
.news-strip-title{min-width:0;font-size:16px;font-weight:700;line-height:1.65;overflow-wrap:break-word}
.news-strip-arrow{font-size:24px;line-height:1}
.idea-program{padding-bottom:145px;scroll-margin-top:110px}
.idea-program-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;gap:clamp(45px,7vw,120px);padding-top:52px;border-top:2px solid var(--ink)}
.idea-program-heading .small-label{color:var(--green-deep);font-size:13px}
.idea-program-heading h3{margin:20px 0 0;font-size:clamp(39px,4.5vw,68px);font-weight:900;line-height:1.35;letter-spacing:-.055em}
.idea-program-intro p{margin:0;color:var(--muted);font-size:18px;line-height:1.9}
.idea-program-intro p+p{margin-top:20px}
.idea-program-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:62px 0 0;padding:0;list-style:none}
.idea-program-steps li{min-width:0;padding:22px 20px 0 0;border-top:2px solid var(--green-deep)}
.idea-program-steps span{display:block;color:var(--green-deep);font:900 13px Arial,sans-serif;letter-spacing:.09em}
.idea-program-steps strong{display:block;margin-top:13px;font-size:24px;line-height:1.5}
.idea-program-steps p{margin:9px 0 0;color:var(--muted);font-size:16px;line-height:1.85}
.idea-program-footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:60px;align-items:start;margin-top:68px;padding:29px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.idea-program-footer p{margin:0;color:var(--muted);font-size:16px;line-height:1.9}
.idea-program-footer .idea-program-status{color:var(--ink);font-weight:700}
@media(max-width:800px){
  .news-strip{grid-template-columns:1fr;gap:10px;padding-block:25px}
  .news-strip-item{gap:15px}
  .idea-program{padding-bottom:100px}
  .idea-program-top{grid-template-columns:1fr;gap:26px}
  .idea-program-heading h3{font-size:clamp(37px,7vw,57px)}
  .idea-program-intro p{font-size:17px}
  .idea-program-steps{gap:16px;margin-top:40px}
  .idea-program-steps strong{font-size:20px}
  .idea-program-footer{grid-template-columns:1fr;gap:16px;margin-top:48px}
}
@media(max-width:520px){
  .news-strip-heading h2{font-size:20px}
  .news-strip-item{grid-template-columns:minmax(0,1fr) auto;gap:7px 12px}
  .news-strip-status{grid-column:1/-1;font-size:13px}
  .news-strip-title{font-size:16px}
  .idea-program-top{padding-top:35px}
  .idea-program-heading h3{font-size:clamp(32px,8.5vw,44px)}
  .idea-program-intro p{font-size:16px}
  .idea-program-steps{grid-template-columns:1fr;gap:26px}
  .idea-program-steps li{padding-top:16px}
  .idea-program-footer p{font-size:15px}
}
/* Three in-development services and the nonpublic corporate-contact preview. */
.upcoming{display:block;padding-block:126px 110px}
.upcoming-intro{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:end;gap:50px}
.upcoming-intro .small-label{grid-column:1/-1}
.upcoming-intro h3{margin:0}
.upcoming-intro>p{max-width:680px;font-size:18px}
.upcoming-list{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:stretch;gap:16px;margin-top:44px;border:0}
.kaohare-series{min-width:0;padding:24px;background:#fff;border:1px solid #e8d8c8;scroll-margin-top:110px}
.kaohare-series-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-height:145px}
.kaohare-series-head .small-label,.upcoming-independent-head .small-label{color:var(--green-deep);font-size:13px;letter-spacing:.08em}
.kaohare-series-head h4,.upcoming-independent-head h4{margin:10px 0 8px;font-size:clamp(27px,2.3vw,34px);font-weight:900;line-height:1.4}
.kaohare-series-head p{max-width:510px;margin:0;color:var(--muted);font-size:16px;line-height:1.8}
.kaohare-series-head img{flex:none;width:min(26%,155px);height:auto;max-height:60px;object-fit:contain;object-position:right top}
.kaohare-series-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.upcoming-independent{display:flex;flex-direction:column;min-width:0}
.upcoming-independent-head{min-height:145px;padding:24px 5px 0}
.upcoming-independent .upcoming-card{flex:1}
.upcoming-list .upcoming-card{display:flex;flex-direction:column;min-width:0;min-height:535px;padding:26px 24px 24px;border:1px solid var(--line);background:#f8faf7;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.kaohare-series .upcoming-card{background:#fff}
.upcoming-list .upcoming-card:hover{transform:translateY(-5px);border-color:#a8c8a6;box-shadow:0 18px 38px rgba(22,52,27,.09)}
.upcoming-list .upcoming-card>span{font-size:13px}
.upcoming-list .upcoming-card>strong{position:static;align-self:flex-start;order:1;margin-top:19px;font-size:12px}
.upcoming-brand{display:flex;align-items:center;min-height:106px;max-width:100%;margin-top:20px;color:var(--green-deep);font-size:clamp(25px,2.8vw,39px);font-weight:900;line-height:1.2;letter-spacing:-.055em}
.upcoming-brand img{width:auto;max-width:100%;max-height:110px;object-fit:contain;object-position:left center}
.upcoming-brand--pay{gap:7px}
.upcoming-brand--pay img{max-width:min(75%,270px);max-height:90px}
.upcoming-brand--pay b{font:900 clamp(23px,2.2vw,33px)/1 Arial,sans-serif;letter-spacing:-.07em}
.upcoming-brand--learning img{max-width:min(100%,310px);max-height:110px}
.upcoming-brand--consultation{align-items:center;flex-wrap:wrap;gap:4px 8px}
.upcoming-brand--consultation span{color:var(--ink)}
.upcoming-list .upcoming-card h4{margin:10px 0 12px;font-size:clamp(25px,2vw,31px);line-height:1.4}
.upcoming-list .upcoming-card p{font-size:16px;line-height:1.85}
.upcoming-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;padding-top:23px;color:var(--green-deep);font-size:12px;font-weight:900;line-height:1.5}
.upcoming-flow span{padding:6px 8px;background:#e6f2e1}
.upcoming-flow i{font-style:normal}
.upcoming-link{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;align-self:flex-start;min-width:155px;margin-top:18px;padding:9px 0;border-bottom:2px solid var(--ink);font-size:15px;font-weight:900;line-height:1.5}
.upcoming-link:hover{color:var(--green-deep);border-color:var(--green-deep)}
.upcoming-link span{font-size:21px;font-weight:400}
.idea-program-footer{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.idea-program-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:280px;padding:18px 22px;background:var(--green-deep);color:#fff;font-size:17px;font-weight:900;line-height:1.5;transition:background .25s ease,transform .25s ease}
.idea-program-cta:hover{transform:translateY(-3px);background:#214e30}
.idea-program-cta span{font-size:23px;font-weight:400}
.idea-application{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,6vw,90px);align-items:start;margin-top:83px;padding:57px clamp(22px,5vw,72px);background:#eaf3e6;scroll-margin-top:115px}
.idea-application-copy{position:sticky;top:128px}
.idea-application-copy .small-label{color:var(--green-deep);font-size:14px}
.idea-application-copy h4{margin:24px 0;font-size:clamp(34px,3.6vw,54px);line-height:1.4;letter-spacing:-.055em}
.idea-application-copy>p:not(.small-label){margin:0;color:var(--ink);font-size:18px;line-height:1.9}
.idea-application-copy .idea-application-note{margin-top:35px!important;padding-top:18px;border-top:1px solid #aecaa7;color:#47594a!important;font-size:14px!important;line-height:1.8!important}
.idea-form{min-width:0;padding:31px 35px 25px;background:#fff;border:1px solid #bed4b7;box-shadow:0 18px 40px rgba(23,53,26,.07)}
.idea-form fieldset{display:grid;gap:19px;min-width:0;margin:0;padding:0;border:0}
.idea-form legend{margin-bottom:24px;font-size:26px;font-weight:900;line-height:1.45}
.idea-form label{display:grid;gap:8px;min-width:0;font-size:15px;font-weight:900;line-height:1.6}
.idea-form label>span:first-child:not(:only-child){font-size:12px}
.idea-form label:not(.idea-consent)>span{display:inline-block;width:max-content;padding:1px 6px;background:#e6f2e1;color:var(--green-deep)}
.idea-form input:not([type=checkbox]),.idea-form select,.idea-form textarea{width:100%;min-width:0;padding:14px 15px;border:1px solid #9eafa1;border-radius:0;background:#f7faf6;color:var(--ink);font:500 16px/1.6 'Noto Sans JP',sans-serif;opacity:1}
.idea-form textarea{resize:vertical}
.idea-form input::placeholder,.idea-form textarea::placeholder{color:#718078;opacity:1}
.idea-form .idea-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:700}
.idea-consent a{color:var(--green-deep);text-decoration:underline;text-underline-offset:3px}
.idea-consent input{flex:none;width:21px;height:21px;margin:1px 0 0;accent-color:var(--green-deep)}
.idea-form button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:18px 21px;border:0;background:#376a41;color:#fff;font-size:18px;font-weight:900;text-align:left;opacity:.62;cursor:not-allowed}
.idea-form button span{font-size:23px;font-weight:400}
.idea-form-preview{margin:14px 0 0;color:#526057;font-size:13px;font-weight:700;line-height:1.6}
@media (hover:hover) and (pointer:fine){.news-strip-arrow{display:inline-block;transition:transform .25s ease}.news-strip-item:hover .news-strip-arrow{transform:translate(4px,4px)}.idea-program-steps li{transition:border-color .25s ease,transform .3s ease}.idea-program-steps li:hover{transform:translateY(-4px);border-color:var(--ink)}}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .news-strip-heading,.news-strip-item,.purpose .section-eyebrow,.business .section-eyebrow,.business-list a,.web-intro .section-eyebrow,.upcoming-list .upcoming-card,.idea-program-heading,.idea-program-intro,.idea-program-steps li,.idea-program-footer,.idea-application-copy,.idea-form,.education .story-grid,.feature-points li,.closing .small-label,.site-footer .footer-inner{
      animation:in-view 1s linear both;animation-timeline:view();animation-range:entry 0% cover 18%;
    }
  }
}
@media(max-width:1050px){.upcoming-list{grid-template-columns:1fr}.upcoming-list .upcoming-card{min-height:500px}.upcoming-independent-head{min-height:0;padding:28px 5px 17px}.upcoming-independent .upcoming-card{min-height:0}}
@media(max-width:800px){
  .upcoming{padding-block:90px 75px}
  .upcoming-intro{grid-template-columns:1fr;gap:18px}
  .upcoming-intro .small-label{grid-column:auto}
  .upcoming-intro>p{font-size:17px}
  .idea-program-footer{grid-template-columns:1fr;gap:28px}
  .idea-program-cta{width:max-content}
  .idea-application{grid-template-columns:1fr;gap:32px;margin-top:65px;padding:38px 29px}
  .idea-application-copy{position:static}
}
@media(max-width:600px){
  .upcoming-list{grid-template-columns:1fr;gap:13px}
  .kaohare-series{padding:19px}
  .kaohare-series-head{display:block;min-height:0;padding-bottom:20px}
  .kaohare-series-head img{display:block;width:150px;max-width:60%;max-height:60px;margin-top:16px;object-position:left top}
  .kaohare-series-products{grid-template-columns:1fr;gap:13px}
  .upcoming-independent-head{padding:24px 5px 15px}
  .upcoming-list .upcoming-card{min-height:0;padding:22px}
  .upcoming-brand{min-height:82px}
  .upcoming-list .upcoming-card h4{font-size:27px}
  .upcoming-flow{margin-top:8px}
  .idea-program-cta{width:100%;min-width:0}
  .idea-application{margin-inline:-18px;padding:35px 18px}
  .idea-application-copy h4{font-size:clamp(32px,8vw,42px)}
  .idea-application-copy>p:not(.small-label){font-size:16px}
  .idea-form{padding:24px 19px}
  .idea-form legend{font-size:23px}
}
@media(max-width:520px) and (prefers-reduced-motion:no-preference){.hero-photo-a,.hero-photo-b,.hero-photo-c,.hero-badge{animation:none}}
@media(prefers-reduced-motion:reduce){.upcoming-list .upcoming-card:hover,.idea-program-cta:hover,.idea-program-steps li:hover,.news-strip-item:hover .news-strip-arrow{transform:none!important}}
/* A small Mincho accent gives the Japanese messages their own voice while body copy stays easy to read. */
:root{--jp-display:'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif}
.hero h1{letter-spacing:-.035em}
.hero h1 span,.purpose h2 span,.web-intro h2 span,.closing h2{font-family:var(--jp-display);font-weight:900;letter-spacing:-.025em}
.business-head h2,.upcoming h3,.idea-program-heading h3,.idea-application-copy h4,.story-tagline{font-family:var(--jp-display);font-weight:700;letter-spacing:-.025em}
.product h3,.feature-copy h3,.story-head h2{letter-spacing:-.025em}
@media(max-width:800px){.hero h1{letter-spacing:-.03em}}
@media(max-width:520px){.hero h1{letter-spacing:-.035em}.hero h1 span{letter-spacing:-.04em}}

/* Keep the shared BEECH navigation usable on medium screens, including service LPs. */
@media(min-width:801px) and (max-width:1120px){
  .site-header{gap:16px;padding-inline:24px}
  .desktop-nav{display:none}
  .mobile-menu{display:block;position:relative}
  .mobile-menu summary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:9px 14px;border:1px solid var(--ink);font-size:14px;font-weight:900;list-style:none;cursor:pointer}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu nav{position:absolute;right:0;top:calc(100% + 7px);z-index:30;display:flex;flex-direction:column;min-width:240px;padding:5px 18px;background:#fff;border:1px solid var(--line);box-shadow:0 15px 25px rgba(0,0,0,.12)}
  .mobile-menu nav a{padding:15px 4px;border-bottom:1px solid var(--line);font-size:15px;font-weight:700}
  .mobile-menu nav a:last-child{border-bottom:0}
}
@media(max-width:800px){
  .mobile-menu summary{min-height:48px}
}
