/* ==========================================================================
   株式会社 トゥモロー (seeyou-tomorrow.jp) — site.css
   Direction : « 暁 / Dawn-trust — omotenashi japonais ».
   Signature : soleil levant (旭日) à rayons + fin arc-en-ciel (motif du vrai
   logo « ゆたかな明日へ »). Bleu 藍 de confiance + vermillon 朱 (soleil) + or,
   sur fond washi. Anti-footprint : AUCUNE classe custom — on ne cible que des
   classes/ids Bootstrap existants et des pseudo-éléments.
   ========================================================================== */

:root {
  --ai: #1b3a5f;          /* 藍 navy — confiance */
  --ai-dark: #132a44;
  --ai-deep: #0f2236;     /* footer */
  --shu: #e1502e;         /* 朱 vermillon — le soleil / CTA */
  --shu-dark: #c33f21;
  --kin: #c89b3c;         /* 金 or */
  --kin-lt: #e4c36a;
  --sumi: #24262b;        /* 墨 encre */
  --sumi-soft: #40444a;
  --washi: #f7f2e8;       /* 和紙 fond */
  --surface: #fdfbf5;
  --muted: #6c6f68;
  --border: #e7ddc8;

  --bs-primary: var(--shu);
  --bs-primary-rgb: 225, 80, 46;
  --bs-secondary: var(--ai);
  --bs-secondary-rgb: 27, 58, 95;
  --bs-body-bg: var(--washi);
  --bs-body-color: #2c2f31;
  --bs-body-font-family: 'Zen Kaku Gothic New', system-ui, sans-serif;
  --bs-body-font-size: 1.02rem;
  --bs-body-line-height: 1.9;
  --bs-link-color: var(--shu);
  --bs-link-hover-color: var(--shu-dark);
  --bs-border-color: var(--border);
  --bs-emphasis-color: var(--ai);
}

/* ------------------------------ Base --------------------------------- */
html { scroll-behavior: smooth; }
body {
  background-color: var(--washi);
  background-image:
    radial-gradient(1000px 520px at 100% -6%, rgba(200, 155, 60, 0.1), transparent 60%),
    radial-gradient(760px 460px at -8% 3%, rgba(27, 58, 95, 0.05), transparent 55%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Shippori Mincho B1', 'Zen Kaku Gothic New', serif;
  font-weight: 700;
  color: var(--ai);
  line-height: 1.35;
  letter-spacing: 0.02em;
}

::selection { background: var(--shu); color: #fff; }
a { text-decoration: none; }

a:focus-visible, button:focus-visible, .btn:focus-visible, .nav-link:focus-visible {
  outline: 3px solid rgba(225, 80, 46, 0.55);
  outline-offset: 2px;
  box-shadow: none;
}

section[id] { scroll-margin-top: 94px; }

/* Kicker signature : petit soleil 朱 + libellé latin or espacé */
#kicker, #kicker-light {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.28em; font-size: 0.72rem;
  margin-bottom: 0.85rem; color: var(--kin);
}
#kicker::before, #kicker-light::before {
  content: ""; width: 12px; height: 12px; border-radius: 50%;
  background: var(--shu);
  box-shadow: 0 0 0 4px rgba(225, 80, 46, 0.18);
  flex: none;
}
#kicker-light { color: var(--kin-lt); }

/* Filet arc-en-ciel réutilisable (séparateurs) */
#news, #rinen, #voice, #staff, #hoken { position: relative; }
#news::before, #rinen::before, #voice::before, #staff::before, #hoken::before {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: min(92%, 1140px); height: 3px; border-radius: 3px;
  background: linear-gradient(90deg, #e1502e, #e79a3a, #d8c24a, #4fa3b0, #3f6fb0, #7a5ba6);
  opacity: 0.5;
}

/* --------------------------- Boutons --------------------------------- */
.btn {
  --bs-btn-border-radius: 8px;
  --bs-btn-font-weight: 700;
  --bs-btn-padding-x: 1.5rem;
  --bs-btn-padding-y: 0.62rem;
  font-family: 'Zen Kaku Gothic New', sans-serif;
  letter-spacing: 0.03em;
  transition: transform 0.22s cubic-bezier(0.22,1,0.36,1), box-shadow 0.22s ease, background-color 0.2s ease;
}
.btn-lg { --bs-btn-padding-x: 1.9rem; --bs-btn-padding-y: 0.85rem; font-size: 1.15rem; }
.btn-primary {
  --bs-btn-bg: var(--shu);
  --bs-btn-border-color: var(--shu);
  --bs-btn-hover-bg: var(--shu-dark);
  --bs-btn-hover-border-color: var(--shu-dark);
  --bs-btn-active-bg: var(--shu-dark);
  box-shadow: 0 12px 24px -12px rgba(225, 80, 46, 0.65);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 18px 32px -14px rgba(225, 80, 46, 0.75); }

/* ---------------------------- Topbar --------------------------------- */
#topbar {
  background: var(--ai-deep); color: rgba(247, 242, 232, 0.85);
  font-size: 0.85rem; padding: 0.45rem 0;
}
#topbar-slogan { font-family: 'Shippori Mincho B1', serif; letter-spacing: 0.2em; color: var(--kin-lt); }
#topbar a { color: #fff; font-weight: 700; }
#topbar a:hover { color: var(--kin-lt); }

/* ---------------------------- Navbar --------------------------------- */
#topnav {
  background: rgba(253, 251, 245, 0.92);
  backdrop-filter: saturate(160%) blur(10px);
  border-bottom: 1px solid var(--border);
}
#topnav .nav-link {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 700; font-size: 0.95rem; color: var(--ai);
  padding: 0.5rem 0.85rem; position: relative;
}
#topnav .nav-link::after {
  content: ""; position: absolute; left: 0.85rem; right: 0.85rem; bottom: 0.3rem;
  height: 2px; background: var(--shu);
  transform: scaleX(0); transform-origin: left; transition: transform 0.28s cubic-bezier(0.22,1,0.36,1);
}
#topnav .nav-link:hover, #topnav .nav-link:focus { color: var(--shu); }
#topnav .nav-link:hover::after { transform: scaleX(1); }

/* ----------------------------- HERO ---------------------------------- */
#hero {
  position: relative; overflow: hidden;
  padding: 6rem 0 5.5rem;
  color: #fff;
}
#hero-bg { position: absolute; inset: 0; z-index: 0; }
#hero-bg img { width: 100%; height: 100%; object-fit: cover; }
#hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(15, 34, 54, 0.9) 0%, rgba(15, 34, 54, 0.62) 52%, rgba(15, 34, 54, 0.25) 100%);
}
/* Soleil levant (旭日) : disque + rayons en pseudo-éléments */
#hero-sun {
  position: absolute; z-index: 1; right: 8%; top: 42%;
  width: 300px; height: 300px; transform: translateY(-50%);
  pointer-events: none;
}
#hero-sun::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background:
    repeating-conic-gradient(from 0deg, rgba(228, 195, 106, 0.24) 0deg 5deg, transparent 5deg 12deg);
  -webkit-mask: radial-gradient(circle, transparent 34%, #000 35%);
          mask: radial-gradient(circle, transparent 34%, #000 35%);
}
#hero-sun::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%); border-radius: 50%;
  background: radial-gradient(circle, rgba(225, 80, 46, 0.95), rgba(225, 80, 46, 0.4) 60%, transparent 72%);
}
#hero .container { position: relative; z-index: 2; }
#hero #kicker { color: var(--kin-lt); }
#hero #kicker::before { box-shadow: 0 0 0 4px rgba(228, 195, 106, 0.25); }
#hero-title {
  font-family: 'Shippori Mincho B1', serif;
  font-weight: 800; color: #fff;
  font-size: clamp(2.8rem, 7vw, 5.2rem);
  letter-spacing: 0.06em; line-height: 1.25;
  text-shadow: 0 6px 30px rgba(0, 0, 0, 0.35);
  margin-bottom: 1rem;
}
#hero-company {
  font-family: 'Shippori Mincho B1', serif;
  font-size: clamp(1.15rem, 2.2vw, 1.5rem); color: var(--kin-lt); letter-spacing: 0.12em;
}
#hero-hours { color: rgba(247, 242, 232, 0.9); font-size: 0.92rem; line-height: 1.6; }

/* ============================ お知らせ NEWS ============================ */
#news { padding: 4.5rem 0; }
#news-card {
  background: var(--surface); border: 1px solid var(--border);
  border-left: 4px solid var(--kin);
  border-radius: 12px; padding: 1.1rem 1.3rem; color: var(--sumi);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}
a#news-card:hover { transform: translateY(-3px); box-shadow: 0 20px 34px -22px rgba(27, 58, 95, 0.4); border-left-color: var(--shu); color: var(--shu); }
#news-logo { height: 46px; width: auto; border-radius: 4px; flex: none; }
#news-ico { font-size: 1.5rem; color: var(--shu); flex: none; }
#news-card > span { font-weight: 500; }

/* ============================ 理念 PHILOSOPHY ============================ */
#rinen { padding: 5rem 0; background: linear-gradient(180deg, transparent, rgba(27, 58, 95, 0.04)); }
#rinen h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); }
#philo-quote {
  position: relative; padding-left: 2rem;
  border-left: 3px solid var(--shu);
}
#philo-quote p {
  font-family: 'Shippori Mincho B1', serif;
  font-size: clamp(1.1rem, 1.9vw, 1.4rem);
  color: var(--ai); line-height: 2; margin-bottom: 1rem;
}
#philo-quote p:last-child { margin-bottom: 0; color: var(--sumi-soft); }

/* ============================ お客様の声 VOICE ============================ */
#voice { padding: 5rem 0; }
#voice h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
#voice-q { color: var(--sumi-soft); font-size: 1.05rem; }
#voice-q b { color: var(--shu); font-family: 'Shippori Mincho B1', serif; }
#voice-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 18px; padding: 2rem 1.6rem 1.6rem; position: relative;
  transition: transform 0.26s ease, box-shadow 0.26s ease;
}
#voice-card:hover { transform: translateY(-5px); box-shadow: 0 26px 44px -26px rgba(27, 58, 95, 0.4); }
#voice-card::before {
  content: "\201C"; position: absolute; top: -0.2rem; left: 1rem;
  font-family: 'Shippori Mincho B1', serif; font-size: 4rem; color: rgba(200, 155, 60, 0.35); line-height: 1;
}
#voice-card blockquote {
  font-family: 'Shippori Mincho B1', serif; font-size: 1.1rem;
  color: var(--ai); margin: 0.5rem 0 1.2rem; line-height: 1.9;
}
#voice-card figcaption {
  font-weight: 700; color: var(--sumi); border-top: 1px solid var(--border); padding-top: 0.9rem;
}
#voice-card figcaption::before { content: "― "; color: var(--shu); }

/* ============================ スタッフ紹介 STAFF ============================ */
#staff { padding: 5rem 0; }
#staff h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
#staff-caption {
  background: rgba(27, 58, 95, 0.05); border: 1px solid var(--border);
  border-radius: 12px; padding: 1.1rem 1.3rem; font-size: 0.92rem; color: var(--sumi-soft);
}
#staff-caption p:last-child { margin-bottom: 0; }
#staff-card {
  background: var(--surface); border: 1px solid var(--border);
  border-top: 3px solid var(--ai);
  border-radius: 12px; padding: 1.2rem 1.3rem;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-top-color 0.22s ease;
}
#staff-card:hover { transform: translateY(-3px); box-shadow: 0 18px 30px -20px rgba(27, 58, 95, 0.4); border-top-color: var(--shu); }
#staff-role {
  display: inline-block; font-size: 0.74rem; font-weight: 700;
  color: var(--kin); letter-spacing: 0.06em; margin-bottom: 0.35rem;
}
#staff-name { font-family: 'Shippori Mincho B1', serif; font-size: 1.25rem; font-weight: 700; color: var(--ai); }
#staff-tanto {
  display: inline-block; margin-top: 0.5rem; font-size: 0.8rem;
  background: rgba(225, 80, 46, 0.08); color: var(--shu-dark);
  padding: 0.15rem 0.6rem; border-radius: 999px;
}

/* ============================ 取扱保険会社 PARTNERS ============================ */
#hoken { padding: 5rem 0; }
#hoken h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
#hoken-note { color: var(--muted); letter-spacing: 0.1em; }
#hoken-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 1.1rem 1.3rem; height: 100%;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
#hoken-card:hover { transform: translateY(-3px); box-shadow: 0 18px 30px -20px rgba(27, 58, 95, 0.4); }
#hoken-card i { font-size: 1.4rem; color: var(--ai); flex: none; }
#hoken-card span { font-weight: 500; color: var(--sumi); }

/* ============================ お問い合わせ CONTACT ============================ */
#contact { padding: 2rem 0 5rem; }
#contact-card {
  position: relative; overflow: hidden;
  background: var(--ai-deep); color: #fff;
  border-radius: 24px; padding: 3rem 2.6rem;
}
#contact-card::before {
  content: ""; position: absolute; right: -60px; top: 50%; transform: translateY(-50%);
  width: 260px; height: 260px; border-radius: 50%;
  background:
    repeating-conic-gradient(from 0deg, rgba(228,195,106,0.16) 0deg 5deg, transparent 5deg 12deg);
  -webkit-mask: radial-gradient(circle, transparent 40%, #000 41%);
          mask: radial-gradient(circle, transparent 40%, #000 41%);
  pointer-events: none;
}
#contact-card h2 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.2rem); position: relative; }
#contact-card p { color: rgba(247, 242, 232, 0.85); position: relative; }
#contact-tel {
  font-family: 'Shippori Mincho B1', serif; font-weight: 800;
  font-size: clamp(1.6rem, 3.2vw, 2.3rem); color: #fff; position: relative;
}
#contact-tel:hover { color: var(--kin-lt); }

/* ---------------------------- SEO bloc ------------------------------- */
#seo { padding: 2.4rem 0; }
#seo h2 { font-size: 1.1rem; color: var(--ai); }
#seo p { color: var(--muted); font-size: 0.9rem; margin-bottom: 0; }
#seo a { color: var(--shu); }

/* ----------------------------- Footer -------------------------------- */
#site-footer {
  background: var(--ai-deep); color: rgba(247, 242, 232, 0.78);
  padding: 3.6rem 0 0; margin-top: 1rem;
}
#footer-company { font-family: 'Shippori Mincho B1', serif; font-size: 1.2rem; color: #fff; letter-spacing: 0.08em; }
#footer-slogan { font-family: 'Shippori Mincho B1', serif; color: var(--kin-lt); letter-spacing: 0.2em; }
#site-footer h2 { color: #fff; font-size: 0.9rem; letter-spacing: 0.08em; margin-bottom: 1rem; font-family: 'Zen Kaku Gothic New', sans-serif; }
#site-footer a { color: rgba(247, 242, 232, 0.78); }
#site-footer a:hover { color: var(--kin-lt); }
#site-footer p, #site-footer li { margin-bottom: 0; }
#site-footer hr { border-color: rgba(247, 242, 232, 0.14); opacity: 1; }
#footer-copy { font-size: 0.82rem; color: rgba(247, 242, 232, 0.55); }

/* --------------------------- Responsive ------------------------------ */
@media (max-width: 991.98px) {
  #topnav .navbar-collapse {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: 12px; margin-top: 0.6rem; padding: 0.6rem;
  }
  #topnav .nav-link::after { display: none; }
  #hero { padding: 4rem 0; }
  #hero-sun { display: none; }
  #hero::before { background: linear-gradient(180deg, rgba(15,34,54,0.72), rgba(15,34,54,0.88)); }
  #contact-card { padding: 2.2rem 1.6rem; }
}

/* ------------------------ Reduced motion ----------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
