/* ============================================================
   ETHIOPIAN COFFEE BEANS — responsive.css
   Mobile-first breakpoints: 1024px, 768px, 480px
   ============================================================ */

/* ---- 1024px — Tablet landscape ---- */
@media (max-width: 1024px) {
  :root {
    --sidebar-width: 260px;
  }

  .hero-grid {
    grid-template-columns: 1fr 280px;
    gap: var(--space-6);
  }

  .home-section__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .related-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .roaster-panel {
    grid-template-columns: 1fr;
    padding: var(--space-8);
  }

  .roaster-panel__intro {
    border-right: none;
    padding-right: 0;
    border-bottom: 1px solid rgba(255,255,255,0.12);
    padding-bottom: var(--space-8);
  }

  .dispatch-strip {
    padding: var(--space-8);
  }

  .manifesto-block {
    padding: var(--space-10) var(--space-8);
  }

  .footer__top {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8);
  }

  .footer__top > *:first-child {
    grid-column: 1 / -1;
  }
}

/* ---- 768px — Tablet portrait ---- */
@media (max-width: 768px) {
  h1 { font-size: var(--text-3xl); }
  h2 { font-size: var(--text-2xl); }

  /* Masthead */
  .masthead-topbar__left .masthead-topbar__tagline { display: none; }
  .masthead-topbar__left .masthead-topbar__sep:first-of-type { display: none; }
  .masthead-topbar__weather { display: none; }

  .masthead {
    padding: var(--space-6) 0 var(--space-5);
  }

  .masthead__title {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .masthead__meta {
    flex-direction: column;
    gap: var(--space-3);
  }

  /* Nav */
  .nav__logo {
    opacity: 1;
    pointer-events: auto;
  }

  .nav__menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    flex-direction: column;
    padding: var(--space-4);
    border-bottom: 2px solid var(--color-primary);
    box-shadow: var(--shadow-md);
    gap: 0;
    margin: 0;
    z-index: 300;
  }

  .nav__menu.open {
    display: flex;
  }

  .nav__item { width: 100%; }

  .nav__item a {
    padding: var(--space-3) var(--space-4);
    border-bottom: var(--border);
    font-size: var(--text-base);
  }

  .nav__item a::after { display: none; }

  .nav__toggle {
    display: flex;
  }

  .nav {
    position: sticky;
    top: 0;
  }

  /* Grids */
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .secondary-stack {
    border-left: none;
    border-top: 2px solid var(--color-primary);
    padding-left: 0;
    padding-top: var(--space-6);
  }

  .article-layout {
    grid-template-columns: 1fr;
  }

  .article-layout__sidebar {
    position: static;
  }

  .category-layout {
    grid-template-columns: 1fr;
  }

  .category-layout__sidebar {
    position: static;
  }

  .cluster-grid {
    grid-template-columns: 1fr;
  }

  .home-section__grid {
    grid-template-columns: 1fr;
  }

  .related-grid {
    grid-template-columns: 1fr;
  }

  .roaster-panel {
    padding: var(--space-6);
    gap: var(--space-8);
  }

  .dispatch-strip {
    flex-direction: column;
    padding: var(--space-8) var(--space-6);
    text-align: center;
  }

  .dispatch-strip__desc {
    max-width: 100%;
  }

  .manifesto-block {
    padding: var(--space-8) var(--space-6);
  }

  .manifesto-block__quote {
    font-size: var(--text-lg);
  }

  .cta-block {
    padding: var(--space-8) var(--space-6);
  }

  .cta-block__form {
    flex-direction: column;
  }

  .pillar-hero__title {
    font-size: var(--text-4xl);
  }

  .section-hero__title {
    font-size: var(--text-4xl);
  }

  .article-header h1 {
    font-size: var(--text-3xl);
  }

  .article-filed {
    grid-template-columns: repeat(2, auto);
    gap: var(--space-5);
  }

  .pull-quote {
    padding: var(--space-6);
    font-size: var(--text-xl);
  }

  .author-box {
    flex-direction: column;
  }

  .footer__top {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .footer__stats {
    gap: var(--space-6);
  }

  .footer__editors-note {
    grid-template-columns: 1fr;
  }

  .footer__editors-note-sig {
    flex-direction: column;
    gap: var(--space-3);
  }

  .footer__bottom {
    flex-direction: column;
    gap: var(--space-3);
    text-align: center;
  }

  .roaster-panel__title,
  .roaster-panel__subtitle {
    font-size: var(--text-3xl);
  }

  .dispatch-strip__title {
    font-size: var(--text-xl);
  }

  .home-section__title {
    font-size: var(--text-2xl);
  }
}

/* ---- 480px — Mobile ---- */
@media (max-width: 480px) {
  :root {
    --space-6: 1.25rem;
  }

  .container {
    padding: 0 var(--space-4);
  }

  h1 { font-size: var(--text-2xl); }
  h2 { font-size: var(--text-xl); }

  .masthead-topbar {
    display: none; /* show only weather strip below */
  }

  .masthead__tagline {
    font-size: var(--text-sm);
    padding: 0 var(--space-4);
  }

  .card-lead__title {
    font-size: var(--text-xl);
  }

  .article-hero-image {
    aspect-ratio: 16/9;
  }

  .article-filed {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .share-bar {
    flex-wrap: wrap;
  }

  .home-section__grid {
    grid-template-columns: 1fr;
  }

  .roaster-panel {
    padding: var(--space-5) var(--space-4);
  }

  .roaster-panel__title,
  .roaster-panel__subtitle {
    font-size: var(--text-2xl);
  }

  .dispatch-strip {
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-6) var(--space-4);
  }

  .manifesto-block {
    padding: var(--space-10) var(--space-4);
  }

  .manifesto-block__amharic {
    font-size: 3rem;
  }

  .manifesto-block__quote {
    font-size: var(--text-lg);
  }

  .footer {
    padding-top: var(--space-10);
  }
}

/* ---- Print ---- */
@media print {
  .masthead-topbar, .masthead, .nav, .category-bar,
  .share-bar, .cta-block, .dispatch-strip, .roaster-panel,
  .progress-bar, .footer { display: none; }

  body { font-size: 12pt; color: #000; }
  a { color: #000; text-decoration: underline; }
  .article-layout { grid-template-columns: 1fr; }
  .container { max-width: 100%; }
}
