/* Mobile/PWA refinement layer. It deliberately only applies up to tablet
   portrait width so established desktop layouts remain untouched. */
.guapiy-mobile-filter-options { display: contents; }
.guapiy-mobile-menu-toggle,
.guapiy-mobile-filter-toggle { display: none; }
@media (max-width: 768px) {
  html { scroll-padding-top: calc(4.25rem + env(safe-area-inset-top, 0px)); }

  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .container {
    width: min(calc(100% - 1.25rem), var(--g-content, 1180px));
  }

  /* One compact, keyboard-accessible header pattern for every public area. */
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar {
    position: relative;
    min-height: 60px;
    margin-bottom: 1.5rem;
    padding: max(.45rem, env(safe-area-inset-top, 0px)) 0 .45rem;
    align-items: center;
    flex-wrap: nowrap;
    gap: .55rem;
  }

  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .brand,
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .home-brand,
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .directory-brand,
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .roadmap-brand {
    width: 132px;
    min-width: 0;
    padding: .2rem 0;
  }

  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar__nav {
    display: contents;
  }

  .guapiy-mobile-menu-toggle {
    display: inline-grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    margin-left: auto;
    padding: 0;
    border: 1px solid var(--g-color-border, #dce9e5);
    border-radius: .75rem;
    background: #fff;
    color: var(--g-color-heading, #062f2c);
    box-shadow: 0 4px 12px rgba(6, 47, 44, .06);
  }

  .guapiy-mobile-menu-toggle__bars,
  .guapiy-mobile-menu-toggle__bars::before,
  .guapiy-mobile-menu-toggle__bars::after {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 99px;
    background: currentColor;
    transition: transform .18s ease, opacity .18s ease;
  }
  .guapiy-mobile-menu-toggle__bars { position: relative; }
  .guapiy-mobile-menu-toggle__bars::before,
  .guapiy-mobile-menu-toggle__bars::after { position: absolute; left: 0; content: ""; }
  .guapiy-mobile-menu-toggle__bars::before { transform: translateY(-6px); }
  .guapiy-mobile-menu-toggle__bars::after { transform: translateY(6px); }
  .guapiy-mobile-menu-toggle[aria-expanded="true"] .guapiy-mobile-menu-toggle__bars { background: transparent; }
  .guapiy-mobile-menu-toggle[aria-expanded="true"] .guapiy-mobile-menu-toggle__bars::before { transform: rotate(45deg); }
  .guapiy-mobile-menu-toggle[aria-expanded="true"] .guapiy-mobile-menu-toggle__bars::after { transform: rotate(-45deg); }

  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar__links {
    display: none;
    position: absolute;
    z-index: 80;
    top: calc(100% - .15rem);
    right: 0;
    left: 0;
    width: auto;
    margin: 0;
    padding: .55rem;
    border: 1px solid var(--g-color-border, #dce9e5);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 16px 34px rgba(6, 47, 44, .14);
  }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar__links.is-mobile-open {
    display: grid;
    grid-template-columns: 1fr;
    gap: .25rem;
  }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar__link,
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .provider-menu > summary {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: flex-start;
    padding: .65rem .75rem;
    border: 0;
    border-radius: .65rem;
    font-size: .92rem;
    text-align: left;
  }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .provider-menu { width: 100%; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .provider-menu > summary { justify-content: space-between; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .provider-menu__panel {
    width: 100%;
    max-width: none;
    margin-top: .25rem;
  }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .language-switcher {
    display: flex;
    position: absolute;
    top: .5rem;
    right: 3.35rem;
    margin: 0;
    padding: .1rem;
    border-radius: .65rem;
  }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .language-switcher__button {
    min-width: 31px;
    min-height: 38px;
    padding: .35rem .35rem;
    font-size: .72rem;
  }

  /* Compact reading rhythm and tap targets. */
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .hero__content { padding-bottom: 2.2rem; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .hero__text h1,
  .account-intro h1 { font-size: clamp(1.92rem, 8.4vw, 2.5rem); line-height: 1.08; letter-spacing: -.045em; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .hero__lead { font-size: .99rem; line-height: 1.58; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .section { padding: 2.4rem 0; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .section-heading { margin-bottom: 1.25rem; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .section-heading--row { align-items: flex-start; flex-direction: column; gap: .75rem; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .section-heading h2 { font-size: clamp(1.55rem, 6.5vw, 2rem); }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) :where(.button, input, select, textarea) { min-height: 44px; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .hero__actions { gap: .55rem; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .hero__actions .button { min-width: 0; }

  .home-page .hero__art,
  .directory-page .directory-hero__art,
  .roadmap-page .roadmap-hero__art,
  .guapiy-public-page .hero__page-art { display: none; }
  .home-page .hero__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
  .home-page .stat-card { min-height: 74px; padding: .65rem .55rem; }
  .home-page .stat-card__value { font-size: 1.03rem; }
  .home-page .stat-card__label { font-size: .68rem; line-height: 1.25; }

  /* The search stays visible; optional filters are a compact disclosure. */
  .guapiy-mobile-filter-toggle {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    margin: .65rem 0 0;
    padding: .58rem .8rem;
    border: 1px solid var(--g-color-border-strong, #bfd7d1);
    border-radius: .7rem;
    background: #fff;
    color: var(--g-color-primary-strong, #056f60);
    font: inherit;
    font-size: .88rem;
    font-weight: 800;
  }
  .guapiy-mobile-filter-count {
    display: inline-grid;
    min-width: 1.35rem;
    height: 1.35rem;
    place-items: center;
    padding: 0 .25rem;
    border-radius: 999px;
    background: var(--g-color-primary, #078f78);
    color: #fff;
    font-size: .72rem;
  }
  .filters.guapiy-mobile-filtered { display: block; padding: .75rem; }
  .filters.guapiy-mobile-filtered .field--search { display: grid; }
  .filters.guapiy-mobile-filtered .guapiy-mobile-filter-options { display: none; gap: .65rem; margin-top: .65rem; }
  .filters.guapiy-mobile-filtered.is-mobile-filters-open .guapiy-mobile-filter-options { display: grid; }
  .filters.guapiy-mobile-filtered .field { min-width: 0; }
  .filters.guapiy-mobile-filtered ~ .filters__actions { display: none; }
  .filters.guapiy-mobile-filtered.is-mobile-filters-open ~ .filters__actions { display: grid; margin-top: .55rem; }
  .filters.guapiy-mobile-filtered.is-mobile-filters-open ~ .filters__actions .button { width: 100%; }

  .home-page #homeDirectoryPreview { margin-bottom: 2rem; padding: .85rem; border-radius: 1rem; }
  .home-page #homeDirectoryPreview .helpers-grid,
  .directory-page .helpers-grid { gap: .8rem; }
  .home-page #homeDirectoryPreview .helper-card__media,
  .directory-page .helper-card__media { height: clamp(150px, 49vw, 215px); }
  .helper-card { min-width: 0; }
  .helper-card__actions { gap: .45rem; }
  .helper-card__actions .button { min-height: 42px; }

  .roadmap-page .roadmap-plan-card { padding: .9rem; }
  .roadmap-page .roadmap-item { padding: .9rem; }
  .roadmap-page .roadmap-task-knowledge summary { min-height: 44px; display: flex; align-items: center; }
  .roadmap-page .plan-helper-finder { padding: .9rem; }

  .account-intro { padding: 2rem 0 1.8rem; }
  .account-main { padding: 1.5rem 0 3rem; }
  .account-card { padding: 1.1rem; border-radius: 1rem; }
  .account-form { gap: .85rem; }
  .onboarding-progress { margin: 1rem 0 1.25rem; }
  .onboarding-progress span { width: 30px; height: 30px; }

  .provider-page .provider-dashboard-shell,
  .provider-page .provider-profile-workspace { gap: .85rem; }
  .provider-page .provider-dashboard-card,
  .provider-page .provider-profile-editor { padding: 1rem; }
  .provider-page [data-provider-tabs] { margin-inline: -.1rem; }
  .provider-page .provider-matching-section { padding: .9rem; }
  .provider-page .provider-matching-section .selection-option { min-height: 44px; }

  .site-footer { padding: 2rem 0 calc(2rem + env(safe-area-inset-bottom, 0px)) !important; }
  .site-footer__content { gap: 1.1rem !important; }
  .site-footer__links { gap: .45rem .85rem !important; }
  .site-footer__links a { font-size: .9rem; }
  .scroll-top { right: max(.85rem, env(safe-area-inset-right, 0px)); bottom: max(.85rem, env(safe-area-inset-bottom, 0px)); }

  .modal { padding: max(.55rem, env(safe-area-inset-top, 0px)) .55rem max(.55rem, env(safe-area-inset-bottom, 0px)); }
  .modal__panel { max-height: calc(100dvh - 1.1rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 410px) {
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .brand,
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .home-brand,
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .directory-brand,
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .topbar .roadmap-brand { width: 118px; }
  body:is(.home-page, .directory-page, .roadmap-page, .guapiy-public-page) .language-switcher__button { min-width: 28px; padding-inline: .25rem; }
  .home-page .hero__stats { grid-template-columns: 1fr; }
  .home-page .stat-card { min-height: 0; display: flex; align-items: baseline; gap: .5rem; }
}
