/* Homepage composition; shared page styles remain in styles.css. */
.home-wrap { width:min(calc(100% - 80px),var(--max)); margin-inline:auto; }
.home-section { padding-block:112px; }
.home .hero { padding-top:64px; min-height:680px; }
.home .hero-copy { grid-column:1 / span 7; min-width:0; padding-bottom:64px; }
.home .hero h1 { font-size:clamp(40px,4.8vw,66px); line-height:1.08; margin-inline:0; text-wrap:balance; }
.home .hero h1 em { display:block; margin-top:8px; }
.home .hero-text { max-width:580px; }
.home .hero-actions { flex-wrap:wrap; gap:16px; }
.home .hero-art { grid-column:8 / -1; min-width:0; }
.home-experience { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; padding-block:32px; border-bottom:1px solid var(--line); }
.home-experience p { margin:0; }
.home-experience strong,.home-experience span { display:block; }
.home-experience strong { font-size:22px; letter-spacing:-.03em; color:var(--lime); }
.home-experience span { margin-top:6px; color:var(--muted); font-size:13px; }
.home-section-heading { display:flex; justify-content:space-between; align-items:end; gap:48px; margin-bottom:48px; }
.home h2 { font-size:clamp(34px,4.3vw,60px); line-height:1.08; margin-bottom:0; text-wrap:balance; }
.home-section-heading > p { max-width:360px; margin-bottom:4px; color:var(--muted); }
.home-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.home-service-card { min-width:0; display:flex; flex-direction:column; padding:32px 28px; border:1px solid var(--line); background:linear-gradient(150deg,#12131b,var(--paper)); }
.home-service-featured { border-color:#675090; background:linear-gradient(150deg,#241937,#110f19); }
.home-number { color:var(--lime); font-size:11px; letter-spacing:.12em; margin-bottom:40px; }
.home-service-card h3 { font-size:28px; line-height:1.15; margin-bottom:20px; }
.home-service-card p { color:var(--muted); font-size:15px; line-height:1.7; }
.home-service-card ul { padding-left:18px; margin:8px 0 32px; font-size:13px; }
.home-service-card li { padding-block:5px; }
.home-service-card li::marker { color:var(--violet); }
.home-inline-link { display:inline-flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; font-weight:700; padding-block:14px; border-bottom:1px solid #45434e; }
.home-inline-link span { color:var(--lime); }
.home-inline-link:hover { color:var(--lime); }
.home-service-card .home-inline-link { margin-top:auto; }
.home-focus {
  background-color:var(--lime);
  background-image:linear-gradient(rgba(9,10,15,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(9,10,15,.07) 1px,transparent 1px);
  background-size:72px 72px;
  background-position:center;
  color:var(--paper);
  padding-block:88px;
}
.home-focus-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:80px; }
.home-focus .eyebrow { color:#414a20; }
.home-focus .home-inline-link { margin-top:28px; border-color:#798e35; }
.home-focus .home-inline-link:hover,.home-focus .home-inline-link span { color:var(--paper); }
.home-focus a:focus-visible { outline-color:var(--paper); }
.home-focus-lead { font-size:22px; line-height:1.5; letter-spacing:-.025em; }
.home-focus dl { margin:32px 0 0; }
.home-focus dl > div { border-top:1px solid #9db944; padding-block:18px; }
.home-focus dt { font-weight:800; font-size:14px; margin-bottom:6px; }
.home-focus dd { margin:0; font-size:14px; color:#343d19; }
.home-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; padding:0; margin:0 0 36px; list-style:none; }
.home-process li { border-top:1px solid var(--line); padding-top:20px; }
.home-process li > span { color:var(--lime); font-size:12px; }
.home-process h3 { font-size:23px; margin:24px 0 12px; }
.home-process p { color:var(--muted); font-size:14px; }
.home-contact { display:flex; justify-content:space-between; align-items:center; gap:48px; padding:56px; margin-bottom:100px; border:1px solid #473361; background:radial-gradient(ellipse at 100% 0,rgba(141,92,255,.2),transparent 70%),#121018; }
.home-contact h2 { font-size:clamp(32px,3.6vw,48px); }
.home-contact p:not(.eyebrow) { max-width:480px; margin:24px 0 0; color:var(--muted); }
.home-contact .button { flex-shrink:0; }
@media (max-width:1000px) {
  .home-service-card { padding:24px 20px; }
  .home-service-card h3 { font-size:24px; }
  .home-focus-grid { gap:40px; }
  .home-contact { padding:36px; gap:28px; }
}
@media (max-width:800px) {
  .home-wrap { width:calc(100% - 40px); }
  .home-section { padding-block:72px; }
  .home .hero { min-height:0; padding-top:52px; }
  .home .hero-copy { padding:0; }
  .home .hero h1 { font-size:clamp(38px,7.5vw,60px); }
  .home .hero-art { max-width:480px; align-self:center; margin-top:36px; }
  .home-experience { gap:20px; }
  .home-experience strong { font-size:18px; }
  .home-section-heading { display:block; margin-bottom:32px; }
  .home-section-heading > p { max-width:560px; margin:24px 0 0; }
  .home-service-grid { grid-template-columns:1fr; }
  .home-service-card { padding:28px; }
  .home-number { margin-bottom:24px; }
  .home-service-card h3 { font-size:28px; }
  .home-focus { padding-block:64px; }
  .home-focus-grid { grid-template-columns:1fr; gap:36px; }
  .home-process { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-contact { flex-direction:column; align-items:flex-start; margin-bottom:64px; }
}
@media (max-width:450px) {
  .home-experience { grid-template-columns:1fr; gap:20px; }
  .home-experience p + p { padding-top:20px; border-top:1px solid var(--line); }
  .home-process { grid-template-columns:1fr; gap:20px; }
  .home-contact { padding:28px 20px; }
  .home-contact .button { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .home .hero::before,.home .hero::after { animation:none; }
}
