:root{
  --navy:#0a367d;--blue:#075dcc;--cyan:#23b2c1;--green:#71b936;--purple:#8b62d1;--orange:#f3a01b;
  --ink:#17365f;--muted:#5b6d86;--line:#dce8f5;--tint:#eff8ff;--shadow:0 12px 32px rgba(31,83,150,.12);
  --container:1180px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Noto Sans JP","Yu Gothic",sans-serif;color:var(--ink);background:#fff}a{text-decoration:none;color:inherit}img,svg{max-width:100%;display:block}.container{width:min(calc(100% - 40px),var(--container));margin:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.95);border-bottom:1px solid #e5edf7;backdrop-filter:blur(10px)}.header-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:baseline;gap:10px;color:#135bbd}.brand b{font-size:31px;letter-spacing:.08em}.brand span{font-size:16px;font-weight:800;color:#1a4486}.global-nav{display:flex;align-items:center;gap:16px;font-size:14px;font-weight:700}.nav-corp-btn{display:inline-flex;align-items:center;gap:4px;padding:7px 14px;border-radius:999px;background:#f0f6ff;color:#075dcc;border:1.5px solid #b8d4f8;font-size:13px;font-weight:800;transition:all .2s ease;white-space:nowrap;margin-left:14px}.nav-corp-btn:hover{background:#075dcc;color:#fff;border-color:#075dcc;transform:translateY(-1px)}.entry{padding:10px 20px;border-radius:999px;color:#fff;font-size:14px;background:linear-gradient(135deg,#075dcc,#174db9);box-shadow:0 8px 18px rgba(0,84,190,.2);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.menu-button{display:none}
.hero{overflow:hidden;background:radial-gradient(circle at 84% 35%,rgba(133,214,245,.21),transparent 31%),#fff}.hero-layout{min-height:540px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:10px}.hero-copy{padding:42px 0}.hero-kicker{display:inline-block;margin:0 0 15px;padding:6px 15px;border:1.5px solid #5b90df;border-radius:999px;color:#3972c7;font-weight:700;font-size:14px}.hero h1{margin:0;color:#0b347b;font-size:clamp(40px,5.2vw,64px);line-height:1.42;letter-spacing:.02em}.handwriting{margin:12px 0 20px;font-weight:700;color:#244d89;font-style:italic;font-size:17px}.hero-lead{font-weight:600;line-height:1.85;color:#334b6e}.hashtags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.hashtags span{padding:7px 11px;border:1px solid #c7dcf6;border-radius:999px;background:#fff;color:#2765ba;font-size:12px;font-weight:700;box-shadow:0 4px 12px rgba(44,99,170,.06)}.hero-actions{display:flex;gap:15px;flex-wrap:wrap}.btn{min-height:52px;padding:0 27px;display:inline-flex;align-items:center;justify-content:center;gap:17px;border-radius:999px;font-weight:800;transition:.2s}.btn:hover{transform:translateY(-2px)}.btn-primary{color:#fff;background:linear-gradient(135deg,#0962d2,#0348a7);box-shadow:0 10px 23px rgba(7,85,190,.25)}.btn-outline{background:#fff;color:#1550a6;border:2px solid #78a2df}.hero-art{position:relative}.hero-art svg{filter:drop-shadow(0 16px 24px rgba(41,100,165,.07))}.hero-note{position:absolute;right:0;bottom:20px;margin:0;color:#1765ca;font-weight:700;font-style:italic;transform:rotate(-5deg)}.reaction{position:absolute;z-index:3;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:22px;box-shadow:0 8px 20px rgba(42,87,145,.15)}.heart{left:13%;top:9%;background:#ef5a7d}.like{right:1%;top:34%;background:#f6b821}.person{left:11%;bottom:10%;background:#3c87df;font-size:0}.person:after{content:"👤";font-size:20px}
.section{padding:62px 0}.section-tint{background:linear-gradient(180deg,#eff9ff,#edf7ff)}.section-title{margin:0 0 32px;text-align:center;color:#0b489f;font-size:clamp(27px,3vw,35px)}.section-title:before,.section-title:after{content:"";display:inline-block;width:7px;height:7px;margin:0 18px 5px;border-radius:50%;background:#79a9ef}
.business-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.business-card{min-height:175px;padding:28px 34px;display:grid;grid-template-columns:135px 1fr;align-items:center;gap:24px;background:#fff;border:1px solid #dce8f3;border-radius:17px;box-shadow:var(--shadow);transition:transform .2s, box-shadow .2s;cursor:pointer}.business-card:hover,.job-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(7,83,199,.15)}.card-link-text{display:inline-flex;align-items:center;gap:4px;margin-top:10px;color:#075dcc;font-weight:700;font-size:13px}.card-link-sm{display:block;margin-top:12px;color:#075dcc;font-size:12px;font-weight:700}.ext-link-icon{font-size:14px;color:#075dcc;margin-left:4px}.line-icon{width:120px;height:110px;display:grid;place-items:center;border:3px solid currentColor;border-radius:20px;font-size:55px}.medical{color:#3178dc}.heater{color:#1ab1b9}.business-card h3,.job-card h3{margin:0 0 10px;color:#0752a9}.business-card p,.job-card p{margin:0;color:#52647d;line-height:1.8}
.points-section{padding-top:50px}.points-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.point-card{position:relative;min-height:260px;padding:22px 18px 25px;background:#fff;border:1px solid #dce8f4;border-radius:16px;box-shadow:0 8px 22px rgba(43,84,137,.08)}.point-no{display:inline-grid;place-items:center;width:43px;height:43px;border-radius:50%;color:#fff;font-weight:800}.blue{background:#2676dd}.green{background:#68b62f}.orange{background:#ee9c1b}.purple{background:#8a62d0}.point-illustration{height:72px;display:grid;place-items:center;font-size:48px}.point-card h3{margin:6px 0 8px;color:#0b489f;font-size:21px;line-height:1.4}.point-card p{margin:0;color:#576981;line-height:1.75;font-size:14px}.mini-reaction{position:absolute;right:12px;bottom:12px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#ef597a;box-shadow:0 5px 14px rgba(37,76,128,.15)}
.job-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.job-card{min-height:240px;padding:26px 20px;text-align:center;border:1px solid #dce7f3;border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(39,78,128,.06);transition:transform .2s, box-shadow .2s;cursor:pointer}.job-icon{width:76px;height:76px;margin:0 auto 17px;display:grid;place-items:center;border:2px solid currentColor;border-radius:50%;font-size:33px}.job-card h3{font-size:19px}.job-card p{font-size:13px}.c-blue{color:#2774dd}.c-cyan{color:#1fabbc}.c-green{color:#6db833}.c-purple{color:#8b64d0}.c-orange{color:#ef9f1d}
.process-section{background:linear-gradient(90deg,#edf8ff,#f9fdff,#edf8ff)}.process-layout{display:grid;grid-template-columns:235px 1fr;gap:32px;align-items:center}.process-intro h2{margin:0 0 15px;color:#0b489f}.process-intro h3{color:#0c418d;line-height:1.55}.process-intro p{color:#596b82;line-height:1.8}.process-list{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.process-step{width:140px;text-align:center}.step-circle{width:103px;height:103px;margin:0 auto 12px;display:grid;place-items:center;align-content:center;gap:4px;border:2px solid currentColor;border-radius:50%;background:rgba(255,255,255,.7)}.step-circle span{font-size:31px}.process-step h3{margin:0 0 7px;color:#0b489f}.process-step p{margin:0;color:#596b82;font-size:12px;line-height:1.65}.arrow{margin-top:42px;font-size:27px}
.environment-layout{display:grid;grid-template-columns:1fr 230px;gap:18px;align-items:stretch}.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:stretch}.support-card{display:flex;flex-direction:column;justify-content:space-between;padding:22px 18px;border:1px solid #dce7f3;border-radius:16px;background:#fff;box-shadow:0 7px 20px rgba(39,78,128,.06);height:100%}.support-head{display:flex;align-items:flex-start;gap:12px}.support-head>span{font-size:30px;line-height:1;flex-shrink:0}.support-head>div{flex:1}.support-card h3{margin:0 0 6px;color:#0b489f;font-size:15px;font-weight:800;line-height:1.35}.support-card p{margin:0;color:#5a6b82;font-size:12px;line-height:1.6;min-height:3.2em}.support-card>strong{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-top:auto;padding-top:14px;border-top:1px dashed #e1edf9;text-align:center;font-size:16px;font-weight:700;min-height:46px}.support-card>strong b{font-size:34px;font-weight:900;line-height:1}.support-card>strong.text{font-size:17px;font-weight:800;align-items:center}.team-photo{position:relative;margin:0;border-radius:15px;overflow:hidden;box-shadow:var(--shadow);transform:rotate(2deg)}.team-photo img{width:100%;height:100%;object-fit:cover}.team-photo figcaption{position:absolute;right:8px;top:7px;color:#1266ca;font-weight:800;font-style:italic}
.intern-cta{padding:28px 0;color:#fff;background:linear-gradient(105deg,#4994ee,#197fdb 48%,#33c6c2);overflow:hidden}.intern-layout{display:grid;grid-template-columns:92px 1fr 300px;gap:22px;align-items:center}.experience-badge{width:80px;height:80px;display:grid;place-items:center;border:1px solid #fff;border-radius:50%;text-align:center;font-weight:800}.intern-copy h2{margin:0 0 4px;font-size:30px}.intern-copy p{margin:0 0 13px}.intern-button{min-height:58px;display:inline-flex;align-items:center;gap:18px;padding:0 29px;border-radius:999px;background:linear-gradient(#ffd538,#ffbd00);color:#153b69;font-size:18px;font-weight:800;box-shadow:0 10px 22px rgba(34,73,112,.24)}.intern-button span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff}.intern-photo{position:relative;height:118px;border-radius:12px;overflow:hidden;transform:rotate(-2deg);box-shadow:0 10px 24px rgba(20,69,116,.22)}.intern-photo img{width:100%;height:100%;object-fit:cover}.intern-photo span{position:absolute;right:8px;bottom:8px;padding:5px 9px;background:#fff;color:#4f87d7;border-radius:8px;font-style:italic}
.contact-section{padding:27px 0;background:#eff9ff}.contact-card{display:grid;grid-template-columns:1.15fr 1fr 120px;gap:25px;align-items:center;padding:22px 28px;border:1px solid #dce7f3;border-radius:16px;background:#fff;box-shadow:var(--shadow)}.contact-details{display:grid;gap:10px;padding-right:25px;border-right:1px solid #cbdbee}.contact-details a{display:flex;align-items:center;gap:13px;color:#1654ab;font-size:18px;font-weight:700}.contact-details i{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#0759bd;color:#fff;font-style:normal}.contact-message p{margin:0 0 10px;line-height:1.65;color:#405371}.compact{min-height:40px;padding:0 18px;font-size:13px}.mail-art{font-size:68px;color:#2e6dce;text-align:center}
footer{padding:21px 0;color:#fff;background:linear-gradient(135deg,#073c96,#0759bd)}.footer-inner{display:flex;justify-content:space-between;align-items:center}.footer-inner strong{font-size:20px}.footer-inner small{font-size:11px}
.reveal{opacity:0;transform:translateY(18px);transition:.7s}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1180px){.global-nav{gap:12px;font-size:13.5px}.nav-corp-btn{padding:6px 12px;font-size:12.5px;margin-left:8px}.entry{padding:9px 16px;font-size:13.5px}}
@media(max-width:1080px){.menu-button{display:grid;width:44px;height:44px;place-content:center;gap:5px;border:0;border-radius:8px;background:#eef6ff}.menu-button i{display:block;width:24px;height:2px;background:#0c4b9c}.global-nav{position:absolute;display:none;left:0;right:0;top:100%;padding:15px 20px 23px;flex-direction:column;align-items:stretch;background:#fff;box-shadow:0 15px 30px rgba(20,65,120,.12)}.global-nav.is-open{display:flex}.global-nav a{padding:11px}.nav-corp-btn{margin-left:0}.hero-layout{grid-template-columns:1fr}.hero-copy{text-align:center}.hashtags,.hero-actions{justify-content:center}.hero-art{max-width:610px;margin:auto}.business-grid{grid-template-columns:1fr}.job-grid{grid-template-columns:repeat(2,1fr)}.contact-card{grid-template-columns:1fr}.contact-details{border:0;border-bottom:1px solid #d3e1f0;padding:0 0 18px}.mail-art{display:none}}
@media(max-width:600px){.container{width:min(calc(100% - 26px),var(--container))}.section{padding:50px 0}.hero h1{font-size:34px}.hero-actions{flex-direction:column}.btn{width:100%}.hero-art{display:none}.business-card{grid-template-columns:1fr;text-align:center}.line-icon{margin:auto}.points-grid,.job-grid,.support-grid{grid-template-columns:1fr}.point-card,.job-card{min-height:0}.process-list{overflow-x:auto}.intern-layout{grid-template-columns:1fr;text-align:center}.experience-badge{margin:auto}.intern-button{width:100%;justify-content:center;font-size:16px;padding:0 15px}.contact-details a{font-size:15px}.footer-inner{flex-direction:column;gap:8px;text-align:center}}


/* =========================================
   Hero visual: uploaded-reference-style version
   ========================================= */
.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 81% 36%, rgba(129,211,245,.20), transparent 31%),
    linear-gradient(180deg,#fff 0%,#fcfeff 100%);
}
.hero-layout{
  grid-template-columns:1.03fr .97fr;
  gap:0;
}
.hero-copy{
  position:relative;
  z-index:3;
  padding-top:38px;
  padding-bottom:38px;
}
.hero-kicker{
  border-color:#6a94d8;
  box-shadow:0 2px 0 rgba(46,89,164,.09);
}
.hero h1{
  font-size:clamp(42px,5vw,64px);
  letter-spacing:.01em;
}
.handwriting{
  display:inline-block;
  margin-top:14px;
  margin-bottom:18px;
  color:#163e82;
  font-weight:700;
  font-style:italic;
  transform:rotate(-1.2deg);
}
.handwriting span{
  position:relative;
  display:inline-block;
  padding-bottom:7px;
}
.handwriting span::after{
  content:"";
  position:absolute;
  left:2px;
  right:10%;
  bottom:0;
  height:3px;
  border-radius:99px;
  background:#2b6fd0;
  transform:rotate(-1.5deg);
}
.hero-lead{
  margin-top:4px;
}
.hashtags{
  max-width:650px;
}
.hashtags span{
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 14px rgba(52,100,164,.07);
}
.hero-actions{
  margin-top:22px;
}
.hero-art-reference{
  position:relative;
  min-height:520px;
  align-self:stretch;
  margin-right:-40px;
  overflow:hidden;
}
.hero-art-reference picture,
.hero-art-reference img{
  width:100%;
  height:100%;
}
.hero-art-reference img{
  object-fit:cover;
  object-position:center center;
  filter:saturate(.98) contrast(1.01);
}
.hero-fade{
  position:absolute;
  pointer-events:none;
}
.hero-fade-left{
  inset:0 auto 0 0;
  width:25%;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 28%,rgba(255,255,255,0) 100%);
}
.hero-fade-bottom{
  left:0;right:0;bottom:0;height:18%;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.82));
}
@media(max-width:1020px){
  .hero-art-reference{
    min-height:470px;
    margin-right:-20px;
  }
}
@media(max-width:820px){
  .hero-layout{
    grid-template-columns:1fr;
  }
  .hero-copy{
    text-align:center;
    padding-bottom:5px;
  }
  .hero-art-reference{
    min-height:350px;
    margin:0 -20px;
  }
  .hero-art-reference img{
    object-position:center top;
  }
  .hero-fade-left{
    display:none;
  }
  .hero-fade-bottom{
    height:24%;
  }
}
@media(max-width:600px){
  .hero-art-reference{
    display:block;
    min-height:285px;
    margin:0 -13px;
  }
  .hero h1{
    font-size:34px;
  }
}


/* Fix: render the handwritten copy as HTML so it never gets cropped */
.hero-reference-note{
  position:absolute;
  right:24px;
  bottom:30px;
  z-index:4;
  margin:0;
  padding:10px 14px 11px;
  color:#1765ca;
  font-size:18px;
  font-weight:700;
  line-height:1.65;
  font-style:italic;
  text-align:center;
  transform:rotate(-5deg);
  text-shadow:0 1px 0 rgba(255,255,255,.9);
}
.hero-reference-note::before,
.hero-reference-note::after{
  content:"";
  position:absolute;
  height:3px;
  border-radius:999px;
  background:#2b6fd0;
}
.hero-reference-note::before{
  left:5px;
  right:8px;
  bottom:3px;
  transform:rotate(-3deg);
}
.hero-reference-note::after{
  width:22px;
  left:-7px;
  top:23px;
  transform:rotate(56deg);
}
.hero-reference-note span{
  white-space:nowrap;
}
.hero-art-reference img{
  object-position:center top;
}
.hero-fade-bottom{
  height:10%;
}
@media(max-width:1020px){
  .hero-reference-note{
    right:8px;
    bottom:20px;
    font-size:16px;
  }
}
@media(max-width:820px){
  .hero-reference-note{
    right:22px;
    bottom:18px;
    font-size:16px;
  }
}
@media(max-width:600px){
  .hero-reference-note{
    right:12px;
    bottom:12px;
    font-size:14px;
  }
}

/* =========================================
   Page Top Button (ページトップへ戻るボタン)
   ========================================= */
.pagetop {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #075dcc, #073c96);
  color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(7, 60, 150, 0.28);
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease, background 0.2s ease, box-shadow 0.2s ease;
  z-index: 999;
  cursor: pointer;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
}

.pagetop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.pagetop:hover {
  background: linear-gradient(135deg, #0962d2, #0b489f);
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(7, 60, 150, 0.38);
  color: #ffffff;
}

.pagetop-arrow {
  font-size: 14px;
  line-height: 1;
  font-weight: 900;
  margin-bottom: 2px;
  transition: transform 0.2s ease;
}

.pagetop:hover .pagetop-arrow {
  transform: translateY(-2px);
}

.pagetop-text {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.05em;
  line-height: 1;
}

@media (max-width: 600px) {
  .pagetop {
    bottom: 20px;
    right: 20px;
    width: 46px;
    height: 46px;
  }
  .pagetop-arrow {
    font-size: 12px;
    margin-bottom: 1px;
  }
  .pagetop-text {
    font-size: 8px;
  }
}

