/* ============ HOMEPAGE (html.php) ============ */

/* hero */
.home-hero { background: linear-gradient(165deg, var(--c-ivory) 0%, #fdfcf9 55%, #fff 100%); position: relative; overflow: hidden; }
.home-hero::before { content:""; position:absolute; top:-140px; right:-160px; width:460px; height:460px; border-radius:50%; background: radial-gradient(circle, rgba(92,131,116,.14), transparent 65%); pointer-events:none; }
.home-hero::after { content:""; position:absolute; bottom:-180px; left:-140px; width:420px; height:420px; border-radius:50%; background: radial-gradient(circle, rgba(193,102,63,.08), transparent 65%); pointer-events:none; }
.hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.04fr .96fr; gap: var(--sp-6); align-items: center; padding: var(--sp-8) 0 var(--sp-7); }
.hero-copy .kicker { margin-bottom: 20px; }
.hero-copy h1 { font-size: clamp(2.6rem, 5vw, 4rem); line-height: 1.18; letter-spacing: -0.02em; margin-bottom: 22px; }
.hero-copy .lede { font-size: 18px; line-height: 1.8; color: var(--c-muted); max-width: 54ch; margin-bottom: 30px; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 26px; }
.hero-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.hero-chips .chip { display:inline-flex; align-items:center; gap:7px; font-size:13.5px; color:var(--c-muted); background:#fff; border:1px solid var(--c-line); border-radius:var(--r-full); padding:8px 14px; }
.hero-chips .chip svg { width:15px; height:15px; stroke: var(--c-sage); }
.hero-visual { position: relative; }
.hero-visual .frame { border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-lg); border: 1px solid var(--c-line-2); background:#fff; }
.hero-visual img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.hero-float { position:absolute; left:-28px; bottom:28px; background:#fff; border:1px solid var(--c-line-2); border-radius: var(--r-lg); box-shadow: var(--sh-md); padding: 16px 18px; width: 236px; }
.hero-float .ff-title { font-family: var(--font-head); font-weight:700; color:var(--c-navy); font-size:15px; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.hero-float .ff-title svg { width:18px; height:18px; stroke: var(--c-terra); }
.hero-float ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.hero-float li { font-size:13px; color:var(--c-ink); display:flex; align-items:center; gap:8px; }
.hero-float li::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--c-sage); flex:0 0 auto; }
.hero-float a { color:var(--c-sage); font-weight:600; }

/* info strip */
.info-strip { border-block: 1px solid var(--c-line-2); background:#fff; }
.info-strip .strip-inner { display:grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-2); padding: 22px 0; }
.info-item { display:flex; align-items:center; gap:12px; }
.info-item .ic { flex:0 0 38px; width:38px; height:38px; border-radius:11px; background:var(--c-ivory); display:grid; place-items:center; }
.info-item .ic svg { width:20px; height:20px; stroke: var(--c-navy); }
.info-item .it { font-size:13px; line-height:1.45; color:var(--c-muted); }
.info-item .it strong { display:block; color:var(--c-navy); font-size:14px; }

/* section base */
.home-section { padding: var(--sp-9) 0; }
.home-section.alt { background: var(--c-bg-soft); border-block: 1px solid var(--c-line-2); }
.section-head { max-width: 720px; margin-bottom: var(--sp-5); }
.section-head h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); letter-spacing: -0.015em; margin-bottom: 14px; }
.section-head p { color: var(--c-muted); font-size: 16.5px; line-height: 1.75; margin: 0; }

/* topic cards */
.topic-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); }
.topic-card { padding: 26px 24px; display:flex; flex-direction:column; gap: 12px; text-decoration:none; }
.topic-card .tc-icon { width:46px; height:46px; border-radius:13px; background:var(--c-navy); display:grid; place-items:center; }
.topic-card .tc-icon svg { width:22px; height:22px; stroke:#fff; }
.topic-card h3 { font-size:17.5px; margin:0; }
.topic-card p { font-size:14px; color:var(--c-muted); line-height:1.65; margin:0; flex:1; }
.topic-card .tc-link { font-size:13.5px; font-weight:700; color:var(--c-sage); display:inline-flex; align-items:center; gap:6px; }
.topic-card:hover .tc-link { color: var(--c-navy); }

/* feature split */
.feature-grid { display:grid; grid-template-columns: 1fr 1fr; gap: var(--sp-6); align-items:center; }
.feature-media img { width:100%; border-radius: var(--r-xl); box-shadow: var(--sh-md); border:1px solid var(--c-line-2); }
.feature-copy h2 { font-size: clamp(1.55rem, 2.6vw, 2.1rem); margin-bottom: 16px; }
.feature-copy p { color: var(--c-muted); font-size:16px; line-height:1.78; }
.feature-copy ul { margin: 0 0 var(--sp-3); padding:0; list-style:none; display:flex; flex-direction:column; gap:10px; }
.feature-copy li { display:flex; gap:10px; align-items:flex-start; font-size:15px; color:var(--c-ink); }
.feature-copy li svg { flex:0 0 20px; width:20px; height:20px; margin-top:2px; stroke:var(--c-sage); }
.feature-copy .btn { margin-top: 6px; }

/* carousel */
.carousel-head { display:flex; align-items:flex-end; justify-content:space-between; gap: var(--sp-3); margin-bottom: var(--sp-4); flex-wrap:wrap; }
.carousel-head h2 { margin:0; }
.carousel-nav { display:flex; gap:10px; }
.carousel-btn { width:46px; height:46px; border-radius:50%; border:1px solid var(--c-line); background:#fff; cursor:pointer; display:grid; place-items:center; transition: all .2s var(--ease); }
.carousel-btn:hover { background: var(--c-navy); border-color: var(--c-navy); }
.carousel-btn:hover svg { stroke:#fff; }
.carousel-btn svg { width:20px; height:20px; stroke:var(--c-navy); }
.carousel-viewport { overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin:0 calc(-1 * var(--sp-2)); padding: 4px var(--sp-2) 14px; }
.carousel-viewport::-webkit-scrollbar { display:none; }
.carousel-track { display:flex; gap: var(--sp-3); }
.carousel-item { flex: 0 0 min(320px, 78vw); scroll-snap-align:start; }
.carousel-item .post-card { height:100%; }

/* faq */
.faq-list { max-width: 820px; margin-inline:auto; display:flex; flex-direction:column; gap: 12px; }
.faq-item { background:#fff; border:1px solid var(--c-line-2); border-radius: var(--r-md); overflow:hidden; box-shadow: var(--sh-xs); }
.faq-item summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 22px; font-family:var(--font-head); font-weight:600; color:var(--c-navy); font-size:16px; min-height:56px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary .faq-ico { flex:0 0 22px; width:22px; height:22px; border-radius:50%; border:1.5px solid var(--c-sage); position:relative; transition: transform .25s var(--ease); }
.faq-item summary .faq-ico::before, .faq-item summary .faq-ico::after { content:""; position:absolute; background:var(--c-sage); border-radius:2px; }
.faq-item summary .faq-ico::before { left:5px; right:5px; top:10px; height:1.6px; }
.faq-item summary .faq-ico::after { top:5px; bottom:5px; left:10px; width:1.6px; }
.faq-item[open] summary .faq-ico { transform: rotate(45deg); }
.faq-item .faq-body { padding: 0 22px 20px; color:var(--c-muted); font-size:15px; line-height:1.75; }
.faq-item .faq-body p { margin:0 0 8px; }
.faq-item .faq-body a { font-weight:600; }

/* cta band */
.cta-band { padding: 0 0 var(--sp-9); }
.cta-band .cta-inner { background: linear-gradient(140deg, var(--c-navy) 0%, var(--c-navy-2) 100%); border-radius: var(--r-xl); padding: clamp(36px, 6vw, 64px); color:#fff; display:grid; grid-template-columns: 1.4fr 1fr; gap: var(--sp-5); align-items:center; position:relative; overflow:hidden; box-shadow: var(--sh-lg); }
.cta-band .cta-inner::after { content:""; position:absolute; right:-80px; top:-80px; width:300px; height:300px; border-radius:50%; background: radial-gradient(circle, rgba(92,131,116,.45), transparent 70%); }
.cta-band h2 { color:#fff; font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin-bottom: 12px; }
.cta-band p { color:#c6d1e0; font-size:15.5px; margin-bottom: 0; }
.cta-band .cta-actions { display:flex; gap:12px; flex-wrap:wrap; position:relative; z-index:1; }

/* responsive */
@media (max-width: 1024px) {
  .hero-inner { grid-template-columns: 1fr; gap: var(--sp-5); padding: var(--sp-6) 0; }
  .hero-float { left: 14px; }
  .topic-grid { grid-template-columns: repeat(2, 1fr); }
  .feature-grid { grid-template-columns: 1fr; gap: var(--sp-4); }
  .info-strip .strip-inner { grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); }
  .cta-band .cta-inner { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .home-section { padding: var(--sp-7) 0; }
  .topic-grid { grid-template-columns: 1fr; }
  .info-strip .strip-inner { grid-template-columns: 1fr; }
  .hero-copy h1 { font-size: 2.35rem; }
  .hero-actions .btn { width: 100%; }
}
