/* CAPTURE GEARS — Shared Styles */
:root{
  --bg:#ffffff;
  --bg-alt:#f7f6f2;
  --bg-soft:#fafaf7;
  --ink:#0e1a2b;
  --ink-2:#1f2d40;
  --muted:#5a6678;
  --dim:#9099a6;
  --line:#e5e3da;
  --line-strong:#c9c6ba;
  --accent:#0a4f9e;
  --accent-dark:#073876;
  --highlight:#b8222c;
  --line-green:#06c755;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);color:var(--ink);
  line-height:1.75;font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.mono{font-family:'JetBrains Mono',monospace;letter-spacing:.02em}
.en{font-family:'Outfit',sans-serif;letter-spacing:-.005em}
.serif{font-family:'Noto Serif JP',serif}
a{color:inherit}

/* === Top Notice === */
.topnotice{
  background:var(--ink);color:#fff;padding:9px 24px;font-size:12px;
  display:flex;justify-content:center;align-items:center;gap:24px;letter-spacing:.04em;
}
.topnotice .sep{color:#5a6678}
.topnotice .accent{color:#9bbce0}
@media(max-width:640px){.topnotice{font-size:11px;gap:14px;padding:7px 14px}.topnotice .hide-sm{display:none}}

/* === Header === */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.96);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);padding:18px 32px;
  display:flex;align-items:center;justify-content:space-between;
}
@media(max-width:780px){.header{padding:14px 18px}}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand-mark{
  width:32px;height:32px;border:2px solid var(--ink);position:relative;flex-shrink:0;
}
.brand-mark::before{content:"";position:absolute;inset:5px;background:var(--accent);}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{
  font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;
  letter-spacing:.06em;color:var(--ink);
}
.brand-sub{font-size:10px;color:var(--muted);letter-spacing:.05em;margin-top:3px;font-weight:500;}
.nav{display:flex;align-items:center;gap:32px}
.nav-links{display:flex;gap:28px;font-size:14px;font-weight:500}
.nav-links a{color:var(--ink-2);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;transition:all .2s}
.nav-links a:hover{color:var(--accent);border-color:var(--accent)}
.nav-links a.active{color:var(--accent);border-color:var(--accent)}
.header-cta{
  background:var(--ink);color:#fff;padding:10px 22px;font-size:13px;font-weight:500;
  text-decoration:none;border-radius:2px;transition:background .2s;
}
.header-cta:hover{background:var(--accent)}
@media(max-width:880px){.nav-links{display:none}}

/* === Breadcrumb === */
.breadcrumb{
  background:var(--bg-soft);border-bottom:1px solid var(--line);
  padding:14px 32px;font-size:12px;color:var(--muted);
}
@media(max-width:780px){.breadcrumb{padding:12px 18px;font-size:11px}}
.breadcrumb a{color:var(--ink-2);text-decoration:none;font-weight:500}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb .sep{margin:0 10px;color:var(--dim)}
.breadcrumb .current{color:var(--accent);font-weight:500}

/* === Page Hero (lite version for sub-pages) === */
.page-hero{
  background:var(--bg-alt);padding:64px 32px 48px;
  border-bottom:1px solid var(--line);
}
@media(max-width:780px){.page-hero{padding:48px 18px 36px}}
.page-hero-inner{max-width:1280px;margin:0 auto}
.page-hero-en{
  font-family:'Outfit',sans-serif;font-size:13px;
  color:var(--accent);letter-spacing:.2em;text-transform:uppercase;
  font-weight:500;margin-bottom:14px;
}
.page-hero-h1{
  font-family:'Noto Serif JP',serif;font-size:clamp(32px,4.5vw,52px);
  font-weight:700;line-height:1.2;letter-spacing:.02em;margin-bottom:18px;
}
.page-hero-lead{
  font-size:15px;color:var(--ink-2);max-width:760px;line-height:1.95;
}

/* === Section base === */
section{padding:80px 32px;max-width:1280px;margin:0 auto}
@media(max-width:780px){section{padding:56px 18px}}
.sec-head{margin-bottom:40px;border-bottom:1px solid var(--line);padding-bottom:24px}
.sec-num{
  font-family:'JetBrains Mono',monospace;font-size:11px;
  color:var(--accent);letter-spacing:.2em;margin-bottom:10px;text-transform:uppercase;
}
.sec-h2{
  font-family:'Noto Serif JP',serif;font-size:clamp(26px,3.5vw,40px);
  font-weight:700;line-height:1.25;letter-spacing:.02em;margin-bottom:14px;
}
.sec-h2 .en{
  display:block;font-family:'Outfit',sans-serif;font-size:clamp(12px,1.1vw,15px);
  color:var(--accent);letter-spacing:.2em;text-transform:uppercase;
  font-weight:500;margin-bottom:8px;
}
.sec-lead{font-size:14.5px;color:var(--muted);max-width:760px;line-height:1.9}

/* === Buttons === */
.btn{
  display:inline-flex;align-items:center;gap:8px;padding:13px 22px;
  font-size:13.5px;font-weight:500;text-decoration:none;
  border:1px solid;border-radius:2px;transition:all .2s;cursor:pointer;font-family:inherit;
}
.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-primary:hover{background:var(--accent);border-color:var(--accent)}
.btn-primary::after{content:"→";transition:transform .2s}
.btn-primary:hover::after{transform:translateX(3px)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-line{
  background:var(--line-green);color:#fff;border-color:var(--line-green);
}
.btn-line:hover{background:#04a647;border-color:#04a647}
.btn-line::before{
  content:"";display:inline-block;width:18px;height:18px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M19.365 9.89c.50 0 .91.41.91.91s-.41.91-.91.91h-2.546v1.636h2.546c.5 0 .91.408.91.91 0 .502-.41.91-.91.91h-3.456a.911.911 0 0 1-.909-.91V8.252c0-.5.41-.908.91-.908h3.456c.5 0 .908.41.908.91s-.41.911-.91.911h-2.545v1.636h2.546zm-5.282 4.367a.91.91 0 0 1-.909.91.93.93 0 0 1-.737-.367l-3.546-4.825v4.282a.911.911 0 0 1-1.819 0v-6.01a.916.916 0 0 1 .91-.909.93.93 0 0 1 .729.366l3.555 4.825V8.252c0-.5.41-.908.908-.908.502 0 .91.41.91.91v6.005zm-7.546 0c0 .5-.41.91-.91.91s-.91-.41-.91-.91v-6.01c0-.5.41-.91.91-.91s.91.41.91.91v6.01zm-2.728 0a.911.911 0 0 1-.91.91H.453a.913.913 0 0 1-.909-.91v-6.01c0-.5.41-.908.91-.908.5 0 .908.41.908.91v5.1h2.546c.5 0 .91.41.91.91zM24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.39.082.923.258 1.058.59.12.302.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.647 1.291-.539 6.916-4.078 9.436-6.98C23.176 14.393 24 12.458 24 10.314z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* === CTA Band === */
.ctaband{
  background:var(--ink);color:#fff;
  padding:80px 32px;text-align:center;
  border-top:1px solid var(--ink);
}
@media(max-width:780px){.ctaband{padding:56px 18px}}
.cta-inner{max-width:780px;margin:0 auto}
.cta-en{
  font-family:'Outfit',sans-serif;font-size:13px;
  color:#9bbce0;letter-spacing:.3em;text-transform:uppercase;
  font-weight:500;margin-bottom:18px;
}
.cta-h{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(26px,3.6vw,36px);font-weight:700;
  line-height:1.5;letter-spacing:.04em;margin-bottom:18px;
}
.cta-p{font-size:14px;color:#b9c4d2;line-height:1.95;margin-bottom:32px;}
.cta-row-light{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn-cta-primary{
  background:#fff;color:var(--ink);
  padding:14px 30px;font-size:13.5px;font-weight:500;
  text-decoration:none;border:1px solid #fff;border-radius:2px;transition:all .2s;
}
.btn-cta-primary:hover{background:transparent;color:#fff}
.btn-cta-primary::after{content:" →"}
.btn-cta-outline{
  background:transparent;color:#fff;
  padding:14px 30px;font-size:13.5px;font-weight:500;
  text-decoration:none;border:1px solid rgba(255,255,255,.4);border-radius:2px;transition:all .2s;
}
.btn-cta-outline:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn-cta-line{
  background:var(--line-green);color:#fff;
  padding:14px 30px;font-size:13.5px;font-weight:500;
  text-decoration:none;border:1px solid var(--line-green);border-radius:2px;transition:all .2s;
}
.btn-cta-line:hover{background:#04a647;border-color:#04a647}
.btn-cta-line::after{content:" →"}

/* === Footer === */
footer{background:#fafaf7;border-top:1px solid var(--line);padding:64px 32px 32px;}
@media(max-width:780px){footer{padding:48px 18px 24px}}
.foot-inner{max-width:1280px;margin:0 auto}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;margin-bottom:56px;}
@media(max-width:780px){.foot-grid{grid-template-columns:1fr 1fr;gap:32px}}
.foot-bio{font-size:13px;color:var(--muted);line-height:1.85;margin-top:18px;max-width:340px}
.foot-h{
  font-size:11px;color:var(--ink);letter-spacing:.15em;
  text-transform:uppercase;font-weight:600;margin-bottom:18px;font-family:'Outfit',sans-serif;
}
footer a{color:var(--ink-2);text-decoration:none;display:block;font-size:13px;padding:5px 0;transition:color .2s}
footer a:hover{color:var(--accent)}
.foot-co{font-weight:500;color:var(--ink) !important}
.foot-bottom{
  border-top:1px solid var(--line);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
  font-size:11px;color:var(--muted);
}
.foot-bottom .marks{display:flex;gap:10px;flex-wrap:wrap}
.foot-bottom .mark{
  background:#fff;padding:3px 10px;border:1px solid var(--line);
  font-size:10.5px;color:var(--ink-2);letter-spacing:.04em;
}

/* === Animations === */
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.rise{animation:rise .7s ease-out backwards}
.d1{animation-delay:.1s}.d2{animation-delay:.25s}.d3{animation-delay:.4s}.d4{animation-delay:.55s}

/* === Article (long-form text content for /privacy, /about) === */
.article{max-width:820px}
.article h2{font-family:'Noto Serif JP',serif;font-size:24px;font-weight:700;margin:48px 0 16px;letter-spacing:.02em;border-bottom:1px solid var(--line);padding-bottom:8px}
.article h2:first-child{margin-top:0}
.article h3{font-family:'Noto Serif JP',serif;font-size:17px;font-weight:700;margin:32px 0 10px;letter-spacing:.02em;color:var(--ink-2)}
.article p{font-size:14.5px;color:var(--ink-2);line-height:1.95;margin-bottom:14px}
.article ol,.article ul{font-size:14.5px;color:var(--ink-2);line-height:1.95;margin:0 0 14px 24px}
.article li{margin-bottom:6px}
.article a{color:var(--accent);text-decoration:underline}
.article .meta{font-size:12px;color:var(--muted);margin-top:48px;padding-top:18px;border-top:1px solid var(--line)}
.article table{width:100%;border-collapse:collapse;font-size:13.5px;margin:14px 0 24px;border:1px solid var(--line);}
.article table th{background:var(--bg-soft);padding:12px 16px;text-align:left;font-weight:500;color:var(--ink-2);border-bottom:1px solid var(--line);width:32%;vertical-align:top;font-size:12.5px;letter-spacing:.02em}
.article table td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.article table tr:last-child th,.article table tr:last-child td{border-bottom:none}

/* === Contact options grid === */
.contact-options{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
  margin-bottom:48px;
}
@media(max-width:880px){.contact-options{grid-template-columns:1fr}}
.copt{
  padding:36px 32px;background:#fff;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;
}
.copt-num{
  font-family:'JetBrains Mono',monospace;font-size:10px;
  color:var(--accent);letter-spacing:.2em;margin-bottom:14px;text-transform:uppercase;
}
.copt-h{
  font-family:'Noto Serif JP',serif;font-size:22px;font-weight:700;
  line-height:1.4;margin-bottom:10px;letter-spacing:.02em;
}
.copt-p{font-size:13px;color:var(--muted);line-height:1.85;margin-bottom:24px;flex:1}

/* === Form === */
.form-grid{display:grid;grid-template-columns:1fr;gap:18px;max-width:680px}
.form-row{display:flex;flex-direction:column;gap:6px}
.form-row.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){.form-row.two{grid-template-columns:1fr}}
.form-row label{
  font-size:12.5px;color:var(--ink);font-weight:500;letter-spacing:.04em;
}
.form-row label .req{color:var(--highlight);margin-left:3px}
.form-row input,.form-row select,.form-row textarea{
  padding:11px 14px;background:#fff;
  border:1px solid var(--line-strong);border-radius:2px;
  font-family:inherit;font-size:14px;color:var(--ink);
  transition:border-color .2s;
}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{
  outline:none;border-color:var(--accent);
}
.form-row textarea{resize:vertical;min-height:120px}
.form-row .hint{font-size:11.5px;color:var(--muted);margin-top:2px}
.form-checkbox{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--ink-2)}
.form-checkbox input{width:16px;height:16px;margin-top:3px;flex-shrink:0}
.form-checkbox a{color:var(--accent);text-decoration:underline}

/* === About: stats panel === */
.about-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  background:#fff;border:1px solid var(--line);margin-bottom:32px;
}
@media(max-width:780px){.about-stats{grid-template-columns:repeat(2,1fr)}}
.about-stat{
  padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
}
.about-stat:nth-child(4n){border-right:none}
.about-stat:nth-last-child(-n+1){border-bottom:none}
@media(max-width:780px){
  .about-stat:nth-child(2n){border-right:none}
  .about-stat{border-right:1px solid var(--line)}
  .about-stat:nth-last-child(-n+2){border-bottom:none}
}
.about-stat-label{
  font-family:'JetBrains Mono',monospace;font-size:10px;
  color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px;
}
.about-stat-value{
  font-family:'Outfit',sans-serif;font-weight:600;font-size:22px;
  color:var(--ink);letter-spacing:-.01em;line-height:1.2;
}
.about-stat-jp{font-size:12px;color:var(--ink-2);margin-top:4px}

/* === LINE QR display === */
.line-qr-wrap{
  display:flex;flex-direction:column;align-items:center;
  background:#fafaf7;border:1px solid var(--line);
  padding:14px;margin-bottom:18px;
}
.line-qr{
  width:140px;height:140px;display:block;
  background:#fff;border:1px solid var(--line);
}
.line-qr-id{
  margin-top:10px;font-size:11.5px;color:var(--muted);
  font-family:'JetBrains Mono',monospace;letter-spacing:.04em;
}
.line-qr-id strong{color:var(--ink);font-weight:600}

