/* リーガリスト ホーム — 動的テーマ（.home スコープ / 他ページ非干渉） v2 */
.home { background: #FAF8F3; }

/* sticky glass header (home only) */
.home .site-header {
  position: sticky; top: 0; z-index: 20;
  background: rgba(250, 248, 243, .82);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  backdrop-filter: blur(14px) saturate(160%);
  border-bottom: 1px solid transparent;
  transition: box-shadow .3s ease, border-color .3s ease, background .3s ease;
}
.home .site-header.scrolled { box-shadow: 0 8px 26px rgba(24, 28, 38, .07); border-bottom-color: var(--line); }
.home .logo-word { transition: opacity .2s ease; }
.home .logo:hover .logo-word { opacity: .78; }
.home .global-nav a { position: relative; padding-bottom: 4px; transition: color .2s ease; }
.home .global-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5px;
  background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s cubic-bezier(.22,.61,.36,1);
}
.home .global-nav a:not(.nav-soon):hover { color: var(--accent); text-decoration: none; }
.home .global-nav a:not(.nav-soon):hover::after { transform: scaleX(1); }

/* hero */
.home .hero {
  position: relative; overflow: hidden;
  background: transparent; color: var(--ink);
  padding: clamp(74px, 12vw, 152px) 0 clamp(52px, 8vw, 96px);
}
.home .hero > #aura { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
/* faint brand watermark (scales of justice) */
.home .hero::after {
  content: ""; position: absolute; z-index: 0; top: 50%; right: -6%; translate: 0 -50%;
  width: min(48vw, 560px); aspect-ratio: 1; pointer-events: none; opacity: .05;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A9832E' stroke-width='0.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.4V19.4'/%3E%3Cpath d='M4.7 6.7H19.3'/%3E%3Cpath d='M4.7 6.7 L2.5 10.2 M4.7 6.7 L6.9 10.2'/%3E%3Cpath d='M2.2 10.2 Q4.7 13.9 7.2 10.2'/%3E%3Cpath d='M19.3 6.7 L17.1 10.2 M19.3 6.7 L21.5 10.2'/%3E%3Cpath d='M16.8 10.2 Q19.3 13.9 21.8 10.2'/%3E%3Cpath d='M9 19.4H15'/%3E%3C/svg%3E");
}
@media (max-width: 720px) { .home .hero::after { display: none; } }
.home .hero .container { position: relative; z-index: 1; }
.home .hero-eyebrow {
  display: inline-flex; align-items: center; gap: 11px;
  font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--accent);
  margin-bottom: 26px; font-weight: 700;
}
.home .hero-eyebrow::before { content: ""; width: 34px; height: 1px; background: linear-gradient(90deg, transparent, var(--accent)); }
.home .hero h1 {
  font-family: "Fraunces", var(--serif);
  font-weight: 900; letter-spacing: -.025em; line-height: .96;
  font-size: clamp(54px, 10.5vw, 128px); margin-bottom: 24px;
  background: linear-gradient(115deg, #7a5f2c 4%, #C8A96A 38%, #E4CE9A 52%, #A9832E 70%, #7a5f2c 100%);
  background-size: 220% auto;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: lg-shine 7s linear infinite;
}
@keyframes lg-shine { to { background-position: 220% center; } }
.home .hero-desc { color: var(--ink-2); font-size: clamp(15px, 1.55vw, 18px); line-height: 1.9; max-width: 600px; }

/* hero CTAs */
.home .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 34px; }
.home .btn-hero {
  display: inline-flex; align-items: center; gap: 9px; padding: 14px 28px; border-radius: 100px;
  font-size: 15px; font-weight: 700; letter-spacing: .01em;
  transition: transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease, background .3s ease, border-color .3s ease;
}
.home .btn-hero .arw { transition: transform .3s cubic-bezier(.22,.61,.36,1); }
.home .btn-hero:hover { text-decoration: none; }
.home .btn-hero:hover .arw { transform: translateX(4px); }
.home .btn-hero.primary { background: linear-gradient(135deg, #E4CE9A, #C8A96A); color: #241708; box-shadow: 0 12px 30px rgba(200, 169, 106, .34); }
.home .btn-hero.primary:hover { transform: translateY(-3px); box-shadow: 0 18px 42px rgba(200, 169, 106, .5); }
.home .btn-hero.ghost { border: 1px solid var(--line); color: var(--ink); background: rgba(255,255,255,.5); }
.home .btn-hero.ghost:hover { border-color: var(--accent); color: var(--navy); background: rgba(200, 169, 106, .09); }

/* stats — refined strip with dividers */
.home .stats { background: transparent; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 8px 0; }
.home .stats-grid { display: flex; flex-wrap: wrap; gap: 0; align-items: stretch; }
.home .stat {
  flex: 1 1 180px; flex-direction: column; align-items: flex-start; gap: 4px;
  padding: 26px 26px; border-left: 1px solid var(--line); transition: background .3s ease;
}
.home .stat:first-of-type { border-left: none; padding-left: 4px; }
.home .stat:hover { background: rgba(200, 169, 106, .05); }
.home .stat-num { font-family: "Fraunces", var(--serif); font-size: clamp(36px, 4.6vw, 54px); font-weight: 900; color: var(--navy); line-height: 1; }
.home .stat-unit { font-size: 13px; color: var(--accent); font-weight: 700; margin: 0; }
.home .stat-label { font-size: 12.5px; color: var(--ink-2); margin-top: 4px; }
.home .stats-note { flex-basis: 100%; margin: 12px 0 0; text-align: right; font-size: 11px; color: var(--ink-2); opacity: .7; }

/* sections */
.home .section { padding: clamp(60px, 8vw, 104px) 0; }
.home .section.alt { background: #F3EFE6; }
.home .section-title {
  font-family: "Shippori Mincho B1", var(--serif); font-size: clamp(24px, 3.2vw, 34px);
  border-left: none; padding-left: 0; position: relative; padding-top: 20px; margin-bottom: 34px;
}
.home .section-title::before {
  content: ""; position: absolute; top: 0; left: 0; width: 46px; height: 3px; border-radius: 3px;
  background: linear-gradient(90deg, var(--accent), #E4CE9A);
}
.home .more a { color: var(--ink-2); transition: color .2s ease; }
.home .more a:hover { color: var(--accent); }

/* product (suite) cards */
.home .suite-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }
.home .suite-card {
  position: relative; overflow: hidden; border: 1px solid var(--line); border-top: none; border-radius: 16px;
  padding: 30px 26px 26px; background: #fff; box-shadow: 0 10px 30px rgba(24, 28, 38, .06);
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.home .suite-card::after {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--accent), #E4CE9A); transform: scaleX(0); transform-origin: left; transition: transform .4s cubic-bezier(.22,.61,.36,1);
}
.home .suite-card:hover { transform: translateY(-7px); box-shadow: 0 26px 56px rgba(24, 28, 38, .14); border-color: rgba(169, 131, 46, .3); }
.home .suite-card:hover::after { transform: scaleX(1); }
.home .suite-card::before {
  content: ""; position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .35s ease;
  background: radial-gradient(460px circle at var(--mx, 50%) var(--my, 0%), rgba(169, 131, 46, .10), transparent 42%);
}
.home .suite-card:hover::before { opacity: 1; }
.home .suite-card h3 { font-size: 17px; }
.home .suite-card .btn {
  background: transparent; color: var(--navy); border: 1px solid var(--line); border-radius: 100px; padding: 8px 20px;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.home .suite-card:hover .btn { border-color: var(--accent); color: var(--accent); }
.home .suite-card .btn:hover { background: var(--accent); color: #fff; border-color: var(--accent); text-decoration: none; }

/* article cards */
.home .card-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.home .card {
  position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; padding: 26px 24px; background: #fff;
  box-shadow: 0 10px 30px rgba(24, 28, 38, .06);
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.home .card:hover { transform: translateY(-6px); box-shadow: 0 24px 55px rgba(24, 28, 38, .13); border-color: rgba(169, 131, 46, .3); }
.home .card .badge { background: rgba(200, 169, 106, .12); color: #8a6a24; border-color: rgba(200, 169, 106, .3); border-radius: 100px; padding: 3px 12px; font-weight: 700; }
.home .card-title { font-family: "Shippori Mincho B1", var(--serif); }
.home .card-title a { transition: color .2s ease; }
.home .card:hover .card-title a { color: var(--navy); }

/* scroll reveal + stagger */
.home .reveal { opacity: 0; transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.home .reveal.in { opacity: 1; transform: none; }
.home .suite-grid .suite-card:nth-child(2), .home .card-grid .card:nth-child(2) { transition-delay: .07s; }
.home .suite-grid .suite-card:nth-child(3), .home .card-grid .card:nth-child(3) { transition-delay: .14s; }
.home .suite-grid .suite-card:nth-child(4), .home .card-grid .card:nth-child(4) { transition-delay: .21s; }
.home .card-grid .card:nth-child(5) { transition-delay: .28s; }
.home .card-grid .card:nth-child(6) { transition-delay: .35s; }

/* back to top */
.home .totop {
  position: fixed; right: 20px; bottom: 20px; z-index: 30;
  width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  background: #fff; border: 1px solid var(--line); color: var(--accent);
  box-shadow: 0 10px 24px rgba(24, 28, 38, .12);
  opacity: 0; transform: translateY(12px); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease, border-color .2s ease;
}
.home .totop.show { opacity: 1; transform: none; pointer-events: auto; }
.home .totop:hover { border-color: var(--accent); text-decoration: none; }

@media (max-width: 640px) {
  .home .stat { flex-basis: 45%; padding: 18px 14px; }
  .home .stat:nth-child(odd) { border-left: none; padding-left: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  .home * { animation: none !important; transition: none !important; }
  .home .reveal { opacity: 1; transform: none; }
  .home .hero h1 { animation: none; }
}
