/* HERO */
[data-section="hero"] .title{ font-size:var(--fs-900); line-height:1.02; }
[data-section="hero"] .kicker{
  color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:.08em;
}

/* TEXT */
[data-section="text"] .content{ max-width:75ch; }
[data-section="text"] .content p + p{ margin-top:1em; }

/* TWO-COL */
[data-section="two-col"] .grid.two{ align-items:start; }
[data-section="two-col"] .overline{
  color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:.8em;
}

/* QUOTE */
[data-section="quote"] blockquote{
  margin:0; padding:0; font-size:var(--fs-700); line-height:1.25; font-weight:600;
  border-left:4px solid var(--accent); padding-left:1em;
}
[data-section="quote"] cite{ display:block; margin-top:.6em; color:var(--muted); font-style:normal; }

/* GALLERY */
[data-section="gallery"] .grid{ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
[data-section="gallery"] figure{ margin:0; background:var(--surface); border:1px solid var(--line);
  border-radius:10px; overflow:hidden; }
[data-section="gallery"] figcaption{ padding:.75em 1em; color:var(--muted); font-size:.9em; }

/* STEPS */
[data-section="steps"] ol{ list-style:none; counter-reset:step; padding:0; margin:0; }
[data-section="steps"] li{ counter-increment:step; padding-left:3.2em; position:relative; }
[data-section="steps"] li + li{ margin-top:1.2em; }
[data-section="steps"] li::before{
  content: counter(step); position:absolute; left:0; top:0;
  width:2.2em; height:2.2em; display:grid; place-items:center;
  border-radius:999px; background:var(--accent); color:var(--accent-ink); font-weight:700;
}

/* FAQ */
[data-section="faq"] details{ border-top:1px solid var(--line); padding:1em 0; }
[data-section="faq"] details:last-child{ border-bottom:1px solid var(--line); }
[data-section="faq"] summary{ cursor:pointer; font-weight:600; }
[data-section="faq"] summary::-webkit-details-marker{ display:none; }

/* CTA */
[data-section="cta"] .panel{
  background:var(--accent); color:var(--accent-ink); border-radius:16px;
  padding: clamp(24px, 5vmin, 48px);
}

/* FOOTER */
[data-section="footer"]{ border-top:1px solid var(--line); color:var(--muted); }