@charset "utf-8";
/* AI Ginga corporate site — single stylesheet, no external dependencies.
   Mobile first. One breakpoint only: min-width 720px. */

:root{
  --brand:#6c26f7;        /* logo dark facet / links / rules / CTA border */
  --brand-2:#7b4bef;      /* logo light facet only — not used in UI */
  --brand-hover:#4d13c4;  /* link hover */
  --ink:#171522;
  --ink-2:#5a5668;
  --ink-3:#8b8799;
  --line:#e6e4ee;
  --line-strong:#d5d2e0;
  --surface:#ffffff;
  --surface-alt:#f8f7fb;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic",Meiryo,sans-serif;
  font-size:16px;
  line-height:1.85;
  color:var(--ink);
  background:var(--surface);
  -webkit-font-smoothing:antialiased;
  text-wrap:pretty;
}
img{max-width:100%;height:auto;border:0}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand-hover);text-decoration:underline}
a:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:3px}

/* --- brand bar + header --- */
.topbar{height:3px;background:var(--brand)}
.site-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  height:56px;padding:0 20px;border-bottom:1px solid var(--line);
}
.site-header .logo{display:block;width:122px}
.site-header a:hover{text-decoration:none}
.lang{
  display:inline-flex;align-items:center;min-height:44px;padding:0 14px;
  font-size:12px;font-weight:600;line-height:1;color:var(--ink-2);
  border:1px solid var(--line-strong);border-radius:999px;
}
.lang:hover{color:var(--ink);border-color:var(--ink-3);text-decoration:none}

/* --- hero (local background image; header above stays white) --- */
/* 3 layers: blurred image (::before) / white veil (::after) / content.
   filter+transform instead of backdrop-filter, for Safari. No animation. */
.hero{position:relative;overflow:hidden;padding:40px 20px;background-color:#e9ecf7}
.hero::before{
  content:"";position:absolute;top:0;left:0;width:100%;height:100%;
  background-image:url("hero-800.jpg");
  background-image:image-set(url("hero-800.webp") type("image/webp"), url("hero-800.jpg") type("image/jpeg"));
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  filter:blur(16px);
  transform:scale(1.06);
}
.hero::after{
  content:"";position:absolute;top:0;left:0;width:100%;height:100%;
  background:rgba(255,255,255,.38);
}
.hero .inner{position:relative;z-index:1}
.hero h1{margin:0}
.hero .lockup{display:block;width:100%;max-width:200px}
.hero p{margin:16px 0 0;max-width:32em;font-size:16px;line-height:1.8;color:var(--ink)}

/* --- sections --- */
.section{padding:40px 20px;border-top:1px solid var(--line)}
.section--alt{background:var(--surface-alt)}
.inner{max-width:960px;margin:0 auto}
.bar{width:22px;height:3px;background:var(--brand)}
.section-head{margin:0 0 16px}
.section-head .bar{margin:0 0 12px}
.section-head h2{margin:0;font-size:19px;line-height:1.5;font-weight:700}
.lead{margin:0;font-size:16px;line-height:1.85;color:var(--ink-2)}
.note{margin:18px 0 0;font-size:14px;line-height:1.8;color:var(--ink-2)}

/* --- lists --- */
.list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.list li{display:flex;gap:11px;align-items:flex-start}
.list li::before{content:"";flex:none;width:6px;height:6px;background:var(--brand);margin-top:9px}
.list--biz li{font-size:17px;line-height:1.6;font-weight:600}
.list--dot{gap:8px}
.list--dot li::before{width:5px;height:5px;border-radius:50%;background:var(--ink-3);margin-top:11px}
.list--dot li{font-size:16px;line-height:1.8}

/* --- fact table (definition list, never a <table>: no h-scroll on phones) --- */
.facts{margin:0;border-top:1px solid var(--line)}
.facts > div{padding:14px 0;border-bottom:1px solid var(--line)}
.facts dt{margin:0 0 5px;font-size:12px;line-height:1.4;font-weight:600;letter-spacing:.04em;color:var(--ink-3)}
.facts dd{margin:0;font-size:15px;line-height:1.7}
.facts .sub{color:var(--ink-2)}
.facts .sep{display:none}
.tbd{color:var(--ink-2);border-bottom:1px dashed var(--line-strong)}

/* --- mailto CTA --- */
.mailto{
  display:flex;align-items:center;justify-content:center;
  margin:18px 0 0;min-height:52px;padding:0 18px;
  border:1px solid var(--brand);border-radius:8px;
  font-size:16px;font-weight:600;line-height:1.3;color:var(--brand);text-align:center;
}
.mailto:hover{background:var(--brand);color:#fff;text-decoration:none}

/* --- footer --- */
.site-footer{padding:32px 20px 28px;border-top:1px solid var(--line)}
.site-footer--alt{background:var(--surface-alt)}
.footer-inner{max-width:960px;margin:0 auto}
.footer-name{margin:0;font-size:13px;line-height:1.7;font-weight:600}
.footer-addr{margin:3px 0 0;font-size:13px;line-height:1.7;color:var(--ink-2)}
.footer-nav{display:flex;flex-direction:column;margin:14px 0 0}
.footer-nav a{font-size:13px;line-height:1.7;padding:11px 0}
.copyright{margin:14px 0 0;font-size:12px;line-height:1.6;color:var(--ink-3)}

/* --- legal pages --- */
.legal{padding:36px 20px 44px}
.legal .measure{max-width:680px;margin:0 auto}
.legal h1{margin:0;font-size:26px;line-height:1.4;font-weight:700}
.legal .bar{margin:16px 0 20px}
.legal h2{margin:34px 0 12px;font-size:17px;line-height:1.5;font-weight:700}
.legal p{margin:0;font-size:16px;line-height:1.85}
.legal p.before-list{margin-bottom:10px}
.contact-box{padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface-alt)}
.contact-box p{margin:0;font-size:15px;line-height:1.7}
.contact-box p:first-child{font-weight:600}
.effective{margin:32px 0 0;padding-top:20px;border-top:1px solid var(--line);font-size:13px;line-height:1.7;color:var(--ink-3)}
.facts + .effective{margin-top:28px;padding-top:0;border-top:0}

/* --- >= 720px --- */
@media (min-width:720px){
  .site-header{height:68px;padding:0 32px}
  .site-header .logo{width:148px}
  .lang{font-size:13px;padding:0 15px}

  .hero{padding:80px 32px}
  .hero::before{
    background-image:url("hero-1600.jpg");
    background-image:image-set(url("hero-1600.webp") type("image/webp"), url("hero-1600.jpg") type("image/jpeg"));
  }
  .hero .lockup{max-width:360px}
  .hero p{margin-top:20px;font-size:18px}

  .section{padding:72px 32px}
  .section .inner{display:grid;grid-template-columns:180px 1fr;gap:0 32px;align-items:start}
  .section-head{margin:0}
  .section-head h2{font-size:21px}

  .list--biz li{font-size:19px}
  .note{font-size:15px}

  .facts > div{display:grid;grid-template-columns:180px 1fr;gap:0 24px;padding:16px 0}
  .facts dt{margin:0;font-size:13px;line-height:1.9}
  .facts dd{line-height:1.8}
  .facts .sep{display:inline;color:var(--ink-3)}
  .facts .nl{display:none}

  .mailto{display:inline-flex;margin-top:20px;padding:0 24px}

  .site-footer{padding:44px 32px 40px}
  .footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px}
  .footer-nav{flex-direction:row;flex-wrap:wrap;gap:0 24px;margin:0}
  .footer-nav a{padding:4px 0}
  .footer-copy{order:-1}

  .legal{padding:72px 32px 88px}
  .legal h1{font-size:32px}
}
