/* ==========================================================================
   Ekoya — Responsive refinements & print
   Global breakpoints are handled inline in other files; this file holds
   cross-cutting adjustments, the mobile filter sheet, and print styles.
   ========================================================================== */

/* ---- Mobile filter bottom-sheet (project explorer) ---- */
.filter-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 160;
  background: var(--ek-surface); border-radius: var(--ek-r-lg) var(--ek-r-lg) 0 0;
  box-shadow: 0 -14px 40px rgba(20,40,22,0.22);
  transform: translateY(100%); transition: transform var(--ek-dur) var(--ek-ease);
  max-height: 82vh; display: flex; flex-direction: column; visibility: hidden;
}
.filter-sheet.is-open { transform: none; visibility: visible; }
@media (prefers-reduced-motion: reduce) { .filter-sheet { transition: none; } }
.filter-sheet__head { display: flex; align-items: center; justify-content: space-between; padding: var(--ek-4) var(--ek-5); border-bottom: 1px solid var(--ek-line); }
.filter-sheet__head h2 { margin: 0; font-size: var(--ek-fs-500); }
.filter-sheet__grip { width: 40px; height: 4px; border-radius: 2px; background: var(--ek-line-2); margin: 0.6rem auto 0; }
.filter-sheet__body { overflow-y: auto; padding: var(--ek-5); }
.filter-sheet__foot { padding: var(--ek-4) var(--ek-5); border-top: 1px solid var(--ek-line); display: flex; gap: var(--ek-3); }
.filter-sheet__foot .btn { flex: 1; }
.filter-sheet__close { width: 40px; height: 40px; border: 1px solid var(--ek-line-2); border-radius: var(--ek-r-sm); background: var(--ek-surface); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }

@media (min-width: 941px) {
  .filter-sheet, .filter-sheet .filter-group { }
  .filter-sheet { display: none !important; }
}

/* ---- Small-screen typography & spacing ---- */
@media (max-width: 480px) {
  body { font-size: 1rem; }
  .btn-row .btn { width: 100%; }
  .hero__credibility span:not(:last-child)::after { display: none; }
  .hero__credibility { gap: 0.35rem 0.7rem; }
  .pd-meta { gap: 0.35rem var(--ek-4); }
}

/* Ensure no horizontal overflow at 320px */
@media (max-width: 360px) {
  .container, .header-inner { padding-inline: 1rem; }
  h1, .hero__title { word-break: break-word; }
}

/* ---- Large presentation screens ---- */
@media (min-width: 1600px) {
  .hero__inner { max-width: 66rem; }
}

/* ---- Print ---- */
@media print {
  .site-header, .footer, .nav-toggle, .explorer__sidebar, .filter-sheet, .overlay,
  .hero__bg, .hero__svg, .btn, .view-toggle, .mobile-filter-btn { display: none !important; }
  body { background: #fff; color: #000; }
  .section { padding-block: 1rem; }
  a { text-decoration: underline; color: #000; }
  .card, .proj-card, .res-card { break-inside: avoid; border: 1px solid #ccc; }
}
