/* Terralume shared UI components — generated by _site_build/gen_components.py.
   Single source for the byte-identical components that were duplicated across
   page <style> blocks (.mini-spec / .hero-figure / .svc-* / .honest-note). Do not
   hand-edit; change the component then re-run gen_components.py + sitegen.py. */
.mini-spec{margin-top:var(--s-6); border:1px solid var(--stone-300); border-radius:var(--r-md); background:#fff; overflow:hidden;}
.mini-spec__head{display:flex; align-items:center; gap:10px; padding:13px 18px; background:var(--cream,#F5F3EF); border-bottom:1px solid var(--stone-300); font-family:var(--font-display); font-weight:800; font-size:.95rem; color:var(--charcoal);}
.mini-spec dl{margin:0; padding:6px 18px 16px; display:grid; grid-template-columns:auto 1fr; gap:4px 18px;}
.mini-spec dt{padding-top:10px; font-weight:700; color:var(--charcoal); font-size:var(--fs-body-s); border-top:1px solid var(--stone-200,#ECEAE5);}
.mini-spec dd{padding-top:10px; margin:0; color:var(--muted); font-size:var(--fs-body-s); border-top:1px solid var(--stone-200,#ECEAE5);}
.mini-spec dl > dt:first-of-type, .mini-spec dl > dt:first-of-type + dd{border-top:none;}
.honest-note{display:flex; gap:13px; align-items:flex-start; margin-top:var(--s-6); padding:16px 20px; border-radius:var(--r-md); background:rgba(255,106,0,.07); border:1px solid rgba(255,106,0,.22);}
.honest-note svg{flex:0 0 22px; width:22px; height:22px; color:var(--accent-600); margin-top:1px;}
.honest-note p{margin:0; color:var(--charcoal); font-size:var(--fs-body-s); line-height:1.55;}
.honest-note strong{font-weight:800;}
.hero-figure{margin-top:var(--s-7);}
.hero-figure .diagram-figure{margin-top:0; max-width:1040px;}
.hero-figure .diagram-figure img{border-radius:var(--r-md);}
.hero-figure figcaption{margin-top:14px; text-align:center; color:#CDD0D3; font-size:var(--fs-body-s);}
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-5); margin-top:var(--s-7);}
.svc-card{display:flex; flex-direction:column; border:1px solid var(--stone-300); border-radius:var(--r-md); overflow:hidden; background:#fff; transition:transform var(--t), box-shadow var(--t);}
.svc-card:hover{transform:translateY(-3px); box-shadow:var(--sh-2);}
.svc-card img{width:100%; aspect-ratio:16/10; object-fit:cover; display:block;}
.svc-card__body{padding:var(--s-5); display:flex; flex-direction:column; gap:9px; flex:1;}
.svc-card__body h3{font-size:var(--fs-h4); margin:0;}
.svc-card__body p{color:var(--muted); font-size:var(--fs-body-s); margin:0; flex:1;}
.svc-card__link{font-weight:700; color:var(--accent-600); font-size:.92rem;}
.mini-spec__head svg{width:20px; height:20px; color:var(--accent-600);}
@media(max-width:520px){ .mini-spec dl{grid-template-columns:1fr;} .mini-spec dd{padding-top:2px; border-top:none;} }
@media(max-width:560px){ .svc-grid{grid-template-columns:1fr;} .mini-spec dl{grid-template-columns:1fr;} .mini-spec dd{padding-top:2px; border-top:none;} }
@media(max-width:860px){ .svc-grid{grid-template-columns:1fr 1fr;} }
