.portfolio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 2rem; }
.portfolio-card { display: block; background: #fff; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); border: 1px solid rgba(14,30,63,.04); }
.portfolio-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.portfolio-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.portfolio-card-body { padding: 1.5rem; }
.portfolio-card-body h3 { margin-bottom: 1.25rem; }
.pagination, .section-action { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.pagination:empty { display: none; }
.empty-state { text-align: center; }
.detail-page, .form-page { padding-top: 140px; padding-bottom: 5rem; min-height: 65vh; }
.detail-heading { margin-top: 2rem; margin-bottom: 2rem; }
.project-description { max-width: 800px; margin: 0 auto 3rem; }
.project-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: 2rem; align-items: start; }
.project-gallery img { width: 100%; border-radius: var(--radius-md); }
.project-gallery figcaption { margin-top: .75rem; color: var(--color-text-secondary); }
.form-page { max-width: 760px; }
.form-page .section-header { margin-bottom: 2rem; }
.airtec-form { display: grid; gap: 1rem; background: #fff; padding: 2rem; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.airtec-form label, .airtec-form legend { font-weight: 600; color: var(--color-primary); }
.airtec-form input:not([type=radio]), .airtec-form textarea { width: 100%; border: 1px solid #c6cfdd; border-radius: var(--radius-sm); padding: .85rem; font: inherit; }
.airtec-form textarea { resize: vertical; }
.airtec-form input:focus-visible, .airtec-form textarea:focus-visible { outline: 2px solid var(--color-secondary); outline-offset: 2px; }
.rating-field { border: none; padding: .5rem 0; }
.rating-options { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .75rem; }
.rating-options label { display: flex; align-items: center; gap: .4rem; cursor: pointer; }
.rating-options span { color: var(--color-primary); }
.form-help { font-size: .85rem; margin: 0; }
.notice { padding: 1rem 1.25rem; margin: 1rem 0; border-radius: var(--radius-sm); background: #e9f5ee; color: #125234; }
.notice-error { background: #fff0f0; color: #862121; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 768px) { .detail-page, .form-page { padding-top: 120px; } .airtec-form { padding: 1.25rem; } }
