@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700;900&family=Inter:wght@300;400;700;900&display=swap');

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --ink:#0E0E0E;
  --navy:#1B3A5E;
  --navy2:#2A5298;
  --orange:#E8711A;
  --orange2:#F5A04A;
  --cream:#F7F4EF;
  --white:#FFFFFF;
  --mid:#5A5A5A;
  --light:#EBEBEB;
}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden;}
a{text-decoration:none;color:inherit;}
img{display:block;width:100%;height:100%;object-fit:cover;}

/* ===== NAV ===== */
.nav{display:flex;align-items:center;justify-content:space-between;padding:0 52px;height:64px;background:rgba(247,244,239,0.96);border-bottom:1px solid rgba(0,0,0,0.07);position:sticky;top:0;z-index:1000;backdrop-filter:blur(8px);}
.nav-logo{font-family:'Inter',sans-serif;font-size:20px;font-weight:900;letter-spacing:0.18em;color:var(--ink);display:flex;align-items:center;gap:8px;}
.nav-logo-dot{width:8px;height:8px;border-radius:50%;background:var(--orange);}
.nav-links{display:flex;gap:32px;}
.nav-links a{font-size:12px;color:var(--mid);letter-spacing:0.04em;transition:color .2s;}
.nav-links a:hover,.nav-links a.active{color:var(--orange);}
.nav-btn{background:var(--ink);color:#fff;padding:9px 22px;border:none;border-radius:2px;font-size:12px;cursor:pointer;font-family:'Noto Sans JP',sans-serif;letter-spacing:0.06em;transition:background .2s;}
.nav-btn:hover{background:var(--navy2);}
.nav-mobile-btn{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:4px;}
.nav-mobile-btn span{display:block;width:22px;height:2px;background:var(--ink);}

/* ===== MARQUEE ===== */
.marquee{background:var(--orange);padding:11px 0;overflow:hidden;white-space:nowrap;}
.marquee-inner{display:inline-flex;animation:marquee-scroll 22s linear infinite;}
@keyframes marquee-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.marquee-item{display:inline-flex;align-items:center;gap:14px;padding:0 28px;font-family:'Inter',sans-serif;font-size:11px;font-weight:700;color:#fff;letter-spacing:0.14em;}
.marquee-item::after{content:'◆';font-size:5px;opacity:0.5;}

/* ===== SECTIONS ===== */
.sec-label{font-size:10px;letter-spacing:0.2em;color:var(--orange);font-weight:700;margin-bottom:14px;font-family:'Inter',sans-serif;}
.sec-h{font-size:36px;font-weight:900;color:var(--ink);line-height:1.2;margin-bottom:20px;}
.sec-h span{color:var(--navy2);}
.sec-body{font-size:13px;color:var(--mid);line-height:2.1;}

/* ===== BUTTONS ===== */
.btn-primary{background:var(--orange);color:#fff;padding:13px 30px;border:none;font-size:13px;cursor:pointer;font-family:'Noto Sans JP',sans-serif;letter-spacing:0.06em;transition:opacity .2s;}
.btn-primary:hover{opacity:.85;}
.btn-ghost-dark{background:transparent;color:rgba(255,255,255,.7);padding:13px 28px;border:1px solid rgba(255,255,255,.25);font-size:13px;cursor:pointer;font-family:'Noto Sans JP',sans-serif;transition:border-color .2s;}
.btn-ghost-dark:hover{border-color:rgba(255,255,255,.6);}
.btn-ghost-light{background:transparent;color:var(--navy2);padding:13px 28px;border:1px solid var(--navy2);font-size:13px;cursor:pointer;font-family:'Noto Sans JP',sans-serif;transition:all .2s;}
.btn-ghost-light:hover{background:var(--navy2);color:#fff;}

/* ===== PAGE HERO (事業ページ共通) ===== */
.page-hero{min-height:380px;display:grid;grid-template-columns:1fr 360px;position:relative;overflow:hidden;}
.ph-left{padding:72px 52px;display:flex;flex-direction:column;justify-content:center;position:relative;}
.ph-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.ph-line{width:26px;height:1px;}
.ph-eyebrow span{font-size:10px;letter-spacing:0.2em;font-family:'Inter',sans-serif;}
.ph-h1{font-size:48px;font-weight:900;line-height:1.1;margin-bottom:10px;}
.ph-catch{font-size:17px;font-weight:700;margin-bottom:18px;opacity:.8;}
.ph-body{font-size:13px;line-height:2;opacity:.7;max-width:440px;}
.ph-right{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.ph-right-bg-text{font-family:'Inter',sans-serif;font-size:72px;font-weight:900;opacity:.06;text-align:center;line-height:1;padding:20px;}

/* Navy theme */
.theme-navy .ph-left{background:var(--navy);}
.theme-navy .ph-eyebrow span,.theme-navy .ph-h1,.theme-navy .ph-catch,.theme-navy .ph-body{color:#fff;}
.theme-navy .ph-line{background:var(--orange2);}
.theme-navy .ph-right{background:rgba(27,58,94,.85);}
.theme-navy .ph-right-bg-text{color:#fff;}

/* Orange theme */
.theme-orange .ph-left{background:var(--orange);}
.theme-orange .ph-eyebrow span,.theme-orange .ph-h1,.theme-orange .ph-catch,.theme-orange .ph-body{color:#fff;}
.theme-orange .ph-line{background:rgba(255,255,255,.7);}
.theme-orange .ph-right{background:rgba(200,90,10,.75);}
.theme-orange .ph-right-bg-text{color:#fff;}

/* Ink theme */
.theme-ink .ph-left{background:var(--ink);}
.theme-ink .ph-eyebrow span,.theme-ink .ph-h1,.theme-ink .ph-catch,.theme-ink .ph-body{color:#fff;}
.theme-ink .ph-line{background:var(--orange2);}
.theme-ink .ph-right{background:#1a1a1a;}
.theme-ink .ph-right-bg-text{color:#fff;}

/* ===== BREADCRUMB ===== */
.breadcrumb{padding:11px 52px;background:var(--white);border-bottom:1px solid var(--light);display:flex;gap:8px;align-items:center;}
.breadcrumb a{font-size:11px;color:var(--navy2);}
.breadcrumb span{font-size:11px;color:var(--mid);}

/* ===== FEAT SECTION ===== */
.feat{display:grid;grid-template-columns:1fr 1fr;}
.feat-left{padding:72px 52px;display:flex;flex-direction:column;justify-content:center;}
.feat-right{padding:72px 52px;display:flex;flex-direction:column;justify-content:center;gap:14px;}
.feat-point{display:flex;gap:0;align-items:stretch;background:var(--white);overflow:hidden;}
.feat-point-bar{width:3px;background:var(--orange);flex-shrink:0;}
.feat-point-body{padding:18px 20px;}
.feat-point-body strong{font-size:13px;font-weight:700;color:var(--ink);display:block;margin-bottom:4px;}
.feat-point-body span{font-size:12px;color:var(--mid);line-height:1.8;}

/* ===== PAGE CTA ===== */
.page-cta{background:var(--ink);padding:80px 52px;text-align:center;position:relative;overflow:hidden;}
.page-cta-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Inter',sans-serif;font-size:160px;font-weight:900;color:rgba(255,255,255,.02);white-space:nowrap;pointer-events:none;}
.pcta-label{font-size:10px;letter-spacing:0.22em;color:var(--orange);font-weight:700;margin-bottom:16px;font-family:'Inter',sans-serif;}
.pcta-h{font-size:30px;font-weight:900;color:#fff;margin-bottom:12px;line-height:1.4;}
.pcta-body{font-size:13px;color:rgba(255,255,255,.5);line-height:2;margin-bottom:30px;}
.pcta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

/* ===== FOOTER ===== */
.footer{background:#080808;padding:32px 52px;}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:32px;}
.footer-brand{font-family:'Inter',sans-serif;font-size:16px;font-weight:900;letter-spacing:.16em;color:rgba(255,255,255,.5);margin-bottom:10px;}
.footer-desc{font-size:11px;color:rgba(255,255,255,.25);line-height:1.9;}
.footer-col-title{font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.35);font-weight:700;margin-bottom:14px;font-family:'Inter',sans-serif;}
.footer-col a{display:block;font-size:11px;color:rgba(255,255,255,.25);margin-bottom:8px;transition:color .2s;}
.footer-col a:hover{color:rgba(255,255,255,.6);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.05);padding-top:20px;display:flex;justify-content:space-between;align-items:center;}
.footer-copy{font-size:10px;color:rgba(255,255,255,.15);}
.footer-links{display:flex;gap:20px;}
.footer-links a{font-size:10px;color:rgba(255,255,255,.2);transition:color .2s;}
.footer-links a:hover{color:rgba(255,255,255,.5);}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .nav{padding:0 20px;}
  .nav-links{display:none;}
  .nav-mobile-btn{display:flex;}
  .nav-links.open{display:flex;flex-direction:column;position:fixed;top:64px;left:0;right:0;background:var(--cream);padding:20px;gap:16px;border-bottom:1px solid var(--light);z-index:999;}
  .page-hero{grid-template-columns:1fr;}
  .ph-right{display:none;}
  .ph-left{padding:48px 24px;}
  .ph-h1{font-size:36px;}
  .feat{grid-template-columns:1fr;}
  .feat-left,.feat-right{padding:48px 24px;}
  .footer-top{grid-template-columns:1fr;}
  .footer{padding:32px 24px;}
  .breadcrumb{padding:11px 24px;}
  .page-cta{padding:60px 24px;}
}
