@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;800&family=Work+Sans:wght@300;400;500;600;700;800&display=swap");

:root { --orange:#ff4306; --black:#000; --white:#fff; --gray:#8c8c8c; --line:#303030; --eng:"Work Sans",sans-serif; --jp:"Noto Sans JP",sans-serif; }
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--black); color:var(--white); overflow-x:hidden; }
.hero-top { min-height:75vh; padding:40px 60px 70px; background:var(--orange); color:var(--black); display:flex; flex-direction:column; justify-content:space-between; }
.hero-header { display:flex; justify-content:space-between; align-items:flex-start; }
.brand-name { display:block; margin-bottom:20px; color:var(--black); text-decoration:none; font:800 35px/1 var(--eng); letter-spacing:1px; }
.contact-mini { font:600 20px/1.5 var(--eng); letter-spacing:1px; }
.contact-mini a { color:inherit; text-decoration:none; }
.contact-mini a:hover, .contact-mini a:focus { color:var(--white); text-decoration:underline; }
.contact-mini p:last-child { margin-top:4px; font-family:var(--jp); }
.header-right ul { list-style:none; text-align:right; }
.header-right li { margin-bottom:8px; }
.header-right a { position:relative; display:inline-block; padding-bottom:6px; color:var(--black); text-decoration:none; font:600 16px/1.3 var(--eng); letter-spacing:.5px; }
.header-right a::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--white); transform:scaleX(0); transition:transform .25s; }
.header-right a:hover, .header-right a:focus, .header-right a.active { color:var(--white); }
.header-right a:hover::after, .header-right a:focus::after, .header-right a.active::after { transform:scaleX(1); }
.hero-main-title { margin-top:auto; padding-top:60px; }
.hero-kicker { margin-bottom:12px; font:600 16px/1.4 var(--eng); letter-spacing:1.5px; text-transform:uppercase; }
.main-logo { font:700 clamp(4rem,13vw,15rem)/.86 var(--eng); letter-spacing:-4px; }
.company-main { background:var(--black); color:var(--white); font-family:var(--jp); }
.company-intro, .profile-section, .business-section { max-width:1400px; margin:0 auto; padding:110px 60px; }
.company-intro { border-bottom:1px solid var(--line); }
.intro-meta-row { display:flex; justify-content:space-between; margin-bottom:48px; color:var(--gray); font:500 15px/1.5 var(--eng); letter-spacing:1px; text-transform:uppercase; }
.company-intro h2 { max-width:1050px; margin-bottom:32px; font-size:clamp(2rem,4.4vw,4.5rem); line-height:1.45; letter-spacing:-.04em; }
.company-intro>p { max-width:840px; color:#ccc; font-size:17px; line-height:2; }
.profile-section, .business-section { display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,2.2fr); gap:80px; border-bottom:1px solid var(--line); }
.section-heading>p { margin-bottom:18px; color:var(--orange); font:600 13px/1.4 var(--eng); letter-spacing:1.5px; }
.section-heading h2 { font-size:clamp(2rem,4vw,4rem); line-height:1.2; }
.profile-list>div { display:grid; grid-template-columns:160px 1fr; gap:25px; padding:23px 0; border-top:1px solid var(--line); }
.profile-list>div:last-child { border-bottom:1px solid var(--line); }
.profile-list dt { color:var(--gray); font-size:14px; }
.profile-list dd { font-size:17px; line-height:1.8; }
.business-list { list-style:none; }
.business-list li { display:grid; grid-template-columns:52px 1fr; gap:22px; padding:23px 0; border-top:1px solid var(--line); }
.business-list li:last-child { border-bottom:1px solid var(--line); }
.business-list span { color:var(--orange); font:600 13px/1.9 var(--eng); letter-spacing:1px; }
.business-list p { font-size:16px; line-height:1.8; }
.business-note { grid-column:2; margin-top:-50px; color:var(--gray); font-size:13px; line-height:1.8; }
.footer-bottom { padding:0 60px 30px; background:var(--black); font-family:var(--eng); }
.footer-content { display:flex; justify-content:space-between; align-items:flex-start; padding:100px 0 120px; }
.footer-left h2 a, .instagram-link { color:var(--white); text-decoration:none; font:300 clamp(1.8rem,4vw,4rem)/1.3 var(--eng); letter-spacing:1px; }
.footer-sub-links { display:flex; justify-content:space-between; align-items:center; padding-top:20px; }
.bottom-nav a, .copyright p { margin-right:20px; color:var(--white); text-decoration:none; opacity:.6; font:300 13px/1.5 var(--eng); letter-spacing:1px; }
.bottom-nav a:hover, .bottom-nav a:focus { opacity:1; }

@media (max-width:768px) {
  .hero-top { min-height:58vh; padding:30px 20px 40px; }
  .hero-header { flex-direction:column; gap:24px; }
  .brand-name { margin-bottom:8px; font-size:28px; }
  .contact-mini { font-size:13px; }
  .header-right { width:100%; }
  .header-right ul { display:flex; flex-wrap:wrap; gap:12px 18px; text-align:left; }
  .header-right li { margin:0; }
  .header-right a { font-size:13px; }
  .hero-main-title { padding-top:45px; }
  .hero-kicker { font-size:12px; }
  .main-logo { font-size:15vw; letter-spacing:-2px; }
  .company-intro, .profile-section, .business-section { padding:65px 24px; }
  .intro-meta-row { margin-bottom:30px; font-size:12px; }
  .company-intro h2 { font-size:30px; }
  .company-intro>p { font-size:15px; }
  .profile-section, .business-section { grid-template-columns:1fr; gap:40px; }
  .profile-list>div { grid-template-columns:92px 1fr; gap:16px; padding:18px 0; }
  .profile-list dd, .business-list p { font-size:14px; }
  .business-list li { grid-template-columns:38px 1fr; gap:12px; padding:18px 0; }
  .business-note { grid-column:1; margin-top:-15px; }
  .footer-bottom { padding:0 24px 20px; }
  .footer-content { flex-direction:column; gap:38px; padding:65px 0; }
  .footer-sub-links { flex-direction:column; align-items:flex-start; gap:16px; }
  .bottom-nav { display:flex; flex-wrap:wrap; gap:10px 14px; }
  .bottom-nav a { margin:0; }
}
