/* === Futara Engineering - ALL-IN-ONE styles.css (Desktop + Mobile) === */
@charset "UTF-8";

/* Tokens */
:root{
  --bg:#ffffff;
  --ink:#0f172a;
  --muted:#475569;
  --line:#e2e8f0;
  --paper-2:#f8fafc;
  --brand:#2563eb;
  --focus: rgba(37,99,235,.35);
  --radius:14px;
  --shadow:0 1px 3px rgba(2,6,23,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html, body{
  font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Meiryo',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  color:var(--ink); background:var(--bg); line-height:1.8;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:focus{outline:3px solid var(--focus); outline-offset:2px}
.container{max-width:1060px;margin:0 auto;padding:0 24px}

/* Header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);backdrop-filter:saturate(180%) blur(8px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{width:auto;height:28px}
.brand .name{font-size:18px;font-weight:400;letter-spacing:.01em}
.nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.nav a{font-size:15px;font-weight:400;color:#334155}
.nav a.cta{padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:400}
.nav a.cta:hover{background:#f1f5ff}

/* Hero */
.hero{border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f9fbff,#ffffff)}
.hero-inner{padding:72px 0}
.kicker{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.12em;color:#3b82f6;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;padding:.25rem .6rem}
.hero h1{font-size:38px;line-height:1.3;margin:14px 0 10px}
.lead{font-size:18px;color:var(--muted);margin:0 0 24px;max-width:60ch}

/* Banner (top page variant) */
.hero-banner{background:linear-gradient(135deg,#1e3a8a 0%, #2563eb 60%, #3b82f6 100%);border-bottom:1px solid var(--line);color:#fff}
.hero-banner-inner{display:grid;grid-template-columns: 1.1fr .9fr;align-items:center;gap:28px;padding:64px 0}
.banner-copy h1{margin:0 0 10px;font-weight:900;font-size: clamp(22px, 4.0vw, 36px);line-height:1.25;text-shadow:0 2px 12px rgba(0,0,0,.28)}
.banner-copy .sub{margin:0;font-size: clamp(14px, 1.6vw, 18px);opacity:.95}
.banner-illu{justify-self:end}
.banner-illu img{border-radius:16px;border:1px solid rgba(255,255,255,.45);box-shadow:0 12px 30px rgba(0,0,0,.18);background:#fff;object-fit:cover;max-width:420px}

/* Sections */
.section{padding:64px 0}
.section.alt{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-title{font-size:24px;margin:0 0 18px}
.grid{display:grid;gap:16px}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.card h3{margin:0 0 8px;font-size:18px}
.card p{margin:0;color:#4b5563}

/* Footer */
.site-footer{border-top:1px solid var(--line);background:#fff}
.footer-inner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;padding:24px 0}
.footer-nav a{margin-left:14px;color:#475569}

/* === Mobile Comfort (<=560px) === */
@media (max-width:560px){
  .container{ padding: 0 20px; }
  .section{ padding: 48px 0; }
  .footer-inner{ padding: 20px 0; }
  .header-inner{ height:auto; padding: 10px 0; gap: 10px; flex-wrap: wrap; }
  .brand img{ height: 24px; }
  .brand .name{ font-size: 15px; }
  .nav{ gap: 12px; }
  .nav a{ font-size: 14px; }
  .nav a.cta{ padding:.45rem .75rem }
  .hero-inner{ padding: 44px 0; }
  .kicker{ margin-bottom: 10px; }
  .hero h1{ font-size: 26px; line-height: 1.35; margin: 12px 0 12px; }
  .lead{ font-size: 15px; line-height: 1.9; max-width: 100%; margin-bottom: 22px; }
  .lead .nowrap{ white-space: normal; } /* 強制一行はスマホで解除 */
  .hero-banner-inner{ grid-template-columns:1fr; gap:18px; padding:40px 0; }
  .banner-illu{ justify-self: start; }
  .banner-illu img{ max-width: 100%; height: auto; }
  .grid.two{ grid-template-columns:1fr; }
  .gallery.three{ grid-template-columns:1fr; }
  .card{ padding:16px; border-radius:12px; }
  .card p{ font-size:15px; }
  .footer-nav a{ display:inline-block; margin:6px 12px 0 0; }
}
