/* RESPONSIVE STYLES
   responsive.css: tablet and mobile overrides only. */
@media (max-width: 920px) {
    :root { --page-gutter: 28px; --section-space: 86px; }
    .hero__grid { grid-template-columns: minmax(0,1fr); }
    .hero { min-height: auto; }
    .hero-art { min-height: 370px; }
    .section-heading { display: block; }
    .section-heading__note { margin-top: 18px; }
    .principles-strip__inner { flex-wrap: wrap; justify-content: flex-start; padding-block: 20px; }
    .project-card__visual { min-height: 250px; }
    .site-footer__grid { grid-template-columns: minmax(0,1fr) minmax(150px,.7fr); }
    .site-footer__brand-column { grid-column: 1 / -1; }
    .case-study-grid, .contact-layout { grid-template-columns: minmax(0,1fr); }
    .process-row { grid-template-columns: 48px minmax(0,1fr); gap: 14px; }
    .process-row__description { grid-column: 2; }
}
@media (max-width: 700px) {
    :root { --page-gutter: 18px; --section-space: 72px; }
    .site-header { top: 10px; }
    .site-header__inner { width: calc(100% - 20px); min-height: 60px; padding: 7px 8px 7px 12px; }
    .site-brand__image { width: 38px; height: 38px; }
    .site-brand__descriptor { font-size: .46rem; }
    .menu-toggle { display: inline-flex; flex: 0 0 auto; }
    .site-nav { position: fixed; z-index: -1; top: 72px; right: 10px; left: 10px; display: flex; align-items: stretch; flex-direction: column; gap: 4px; padding: 14px; border: 1px solid var(--color-line); border-radius: 24px; background: rgba(245,240,232,.97); box-shadow: var(--shadow-soft); opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity var(--transition), transform var(--transition); backdrop-filter: blur(20px); }
    .site-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
    .site-nav__link { justify-content: flex-start; padding: 14px 16px; }
    .site-nav__link--cta { justify-content: center; margin: 5px 0 0; }
    .hero { padding-block: 130px 65px; }
    .hero__title { font-size: clamp(3.1rem,16vw,5.5rem); }
    .hero-art { min-height: 300px; border-radius: 24px; }
    .hero-art__label { right: 18px; bottom: 18px; left: 18px; }
    .principles-strip__item { font-size: .82rem; }
    .marquee-card { width: 260px; min-height: 108px; gap: 13px; padding: 12px; }
    .marquee-card__visual { width: 72px; height: 72px; }
    .project-grid { grid-template-columns: minmax(0,1fr); }
    .project-card__visual { min-height: 260px; }
    .project-card__body { min-height: 220px; padding: 22px; }
    .cta-panel { align-items: flex-start; flex-direction: column; border-radius: 24px; }
    .page-hero, .project-detail-hero { padding-block: 130px 55px; }
    .page-hero h1, .project-detail-hero h1 { font-size: clamp(3rem,15vw,5.1rem); }
    .case-visual { border-radius: 24px; }
    .site-footer__grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px 18px; }
    .site-footer__bottom { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 390px) {
    .site-brand__descriptor { max-width: 145px; font-size: .41rem; }
    .hero__title { font-size: 2.9rem; }
    .button-row { align-items: stretch; flex-direction: column; }
    .button-row .button { width: 100%; }
    .site-footer__grid { grid-template-columns: minmax(0,1fr); }
    .site-footer__brand-column { grid-column: auto; }
}
