/* ============================================================
   Responsive layer — loaded last. Desktop styles stay in
   style.css / features.css / category.css. Only max-width
   rules live here so large screens are unchanged.
   ============================================================ */

html{max-width:100%;overflow-x:clip;}
img,video,iframe,svg{max-width:100%;height:auto;}
iframe{max-width:100%;}
table{max-width:100%;}
.layout,.main-content,.main-content--full,.vc-card,.vc-page,
.business-card,.register-page,.legal-wrap,.about-wrap{min-width:0;}

/* ── 1024px: tablet / small laptop ─────────────────────────── */
@media (max-width:1024px){
  .nav-links{display:none!important;}
  .nav-actions{display:flex!important;}
  .nav-toggle{display:flex!important;min-width:44px;min-height:44px;align-items:center;justify-content:center;}
  .nav-mega,.nav-drop{display:none!important;}

  .home-cat-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .category-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .featured-ads-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .recent-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .browse-grid{grid-template-columns:1fr;}
  .register-grid{grid-template-columns:1fr;}
  .register-benefits{position:static;display:grid;grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .db-stats,.db-actions{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ── 768px: large phone / small tablet ─────────────────────── */
@media (max-width:768px){
  :root{--page-pad:16px;--gutter:16px;}
  body{font-size:14px;line-height:1.55;}

  /* Compact mobile type scale: visual hierarchy without desktop-sized text. */
  .hero-title{font-size:28px;line-height:1.18;letter-spacing:-.025em;}
  .legal-hero h1,.about-hero h1,.browse-head h1,.register-hero h1,
  .detail-hero-info h1{font-size:24px;line-height:1.2;letter-spacing:-.025em;}
  .results-info h1,.sr-header h1,.cat-header-text h1,.vc-name{font-size:21px;line-height:1.22;}
  .section-title,.cta-card .cta-title,.cta-title,.about-cta h2{font-size:20px;line-height:1.25;}
  .about-section h2,.legal-block h2,.contact-card h2,.contact-aside-card h2,
  .detail-section h2,.sec-head h2,.seo-intro h2,
  .seo-city-list > h2,.seo-cats > h2,.seo-faq > h2{font-size:17px;line-height:1.3;}
  .seo-faq .faq-card h3,.sr-related h2,.sr-hint h2,.vc-section-title,
  .register-section h2{font-size:15px;line-height:1.35;}

  .hero-subtitle,.legal-hero p,.register-hero p,.about-section p,
  .legal-block p,.legal-block li,.section-desc{font-size:14px;line-height:1.6;}
  .seo-intro p,.seo-faq .faq-card p,.faq-card p,.vc-about-text,
  .contact-card .contact-lead,.contact-aside-card p{font-size:13px;line-height:1.6;}
  .seo-faq .faq-card strong,.faq-card strong{font-size:13px;line-height:1.45;}
  .breadcrumbs,.vc-breadcrumb,.results-count,.cat-header-sub,.cat-meta-count,
  .sr-count{font-size:12px;}

  .card-title,.cat-card-name{font-size:14px;line-height:1.3;}
  .card-location,.card-distance,.card-phone,.cat-card-loc,.card-rating,
  .cat-card-rating{font-size:12px;}
  .btn,.card-act,.cat-chip,.cat-filter,.sr-chip{font-size:12px;}

  .navbar{padding-top:env(safe-area-inset-top,0px);height:calc(var(--navbar-h) + env(safe-area-inset-top,0px));}
  .layout{padding-top:calc(var(--navbar-h) + env(safe-area-inset-top,0px));}

  .mobile-menu{
    width:min(340px,100vw);
    display:flex;flex-direction:column;
    height:100dvh;max-height:100%;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .mobile-menu-head{flex-shrink:0;}
  .mobile-menu-close{min-width:44px;min-height:44px;}
  .mobile-menu-body{flex:1;max-height:none;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .mobile-link,.mobile-cat{min-height:44px;}
  .mobile-search input{font-size:16px;}

  .landing-hero{padding:36px var(--page-pad) 40px;}
  .hero-subtitle{margin-bottom:20px;}
  .search-box{padding:12px;}
  .search-row,.location-row{flex-direction:column;}
  .search-input-fld,.search-btn,.location-row select{width:100%;}
  .search-btn{min-height:44px;justify-content:center;}
  .landing-section{padding:32px var(--page-pad);}
  .stats-bar{gap:16px 12px;padding:12px var(--page-pad);}
  .stat-item{flex:1 1 40%;min-width:120px;}
  .trust-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;}
  .home-cat-grid,.category-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .home-cat{min-height:128px;padding:14px 12px;}
  .featured-ads-grid,.recent-grid,.biz-grid{grid-template-columns:1fr;}
  .business-grid{grid-template-columns:1fr;}
  .steps-grid{flex-direction:column;gap:20px;}
  .step-card{width:100%;flex:none;}
  .step-card+.step-card::before{display:none;}
  .cta-features{grid-template-columns:1fr;}
  .cta-card{padding:28px 20px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:24px;}
  .footer-state-links{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));}

  .sr-filters-row{flex-direction:column;}
  .sr-search-fld,.sr-select{width:100%;min-width:0;}
  .cat-toolbar{position:static;align-items:stretch;}
  .cat-search,.cat-locbar,.cat-controls,.cat-filters,.cat-toolbar-sort,
  .cat-toolbar-sort .cat-select,.cat-field{width:100%;flex:1 1 100%;}
  .cat-grid,.cat-skeleton{grid-template-columns:1fr;}
  .cat-grid.is-list .cat-card{flex-direction:column;}
  .cat-grid.is-list .cat-card-media{width:100%;height:128px;}

  .legal-layout,.contact-grid,.contact-form-row{grid-template-columns:1fr;}
  .legal-toc{position:static;}
  .about-split,.about-faq-grid{grid-template-columns:1fr;}
  .about-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .register-benefits{grid-template-columns:1fr;}
  .form-row,.form-row-2,.vc-form-row{grid-template-columns:1fr;}
  .results-header{flex-direction:column;align-items:flex-start;}
  .results-controls,.sort-group,.sort-group .form-select-sm{width:100%;}

  .emergency-item{flex-direction:column;}
  .emergency-filter-form{flex-direction:column;}
  .emergency-filter-form select{width:100%;min-width:0;}
  .cities-filter{flex-direction:column;align-items:stretch;}
  .cities-filter select,.cities-filter-clear,.cities-filter-search{width:100%;}

  input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),
  select,textarea{font-size:16px;max-width:100%;}
  .btn-primary,.search-btn,.cta-btn,.nav-btn-list{min-height:44px;}
  .btn-outline,.btn-sm{min-height:40px;}
  .card-act{min-height:36px;height:auto;padding:8px 10px;font-size:12px;}

  .seo-table,.vc-hours{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .db table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}

/* ── 430px / 390px / 375px phones ──────────────────────────── */
@media (max-width:430px){
  .nav-brand-text{font-size:13px;max-width:56vw;overflow:hidden;text-overflow:ellipsis;}
  .hero-title{font-size:24px;}
  .legal-hero h1,.about-hero h1,.browse-head h1,.register-hero h1,
  .detail-hero-info h1{font-size:22px;}
  .results-info h1,.sr-header h1,.cat-header-text h1,.vc-name{font-size:20px;}
  .section-title,.cta-card .cta-title,.cta-title,.about-cta h2{font-size:18px;}
  .hero-subtitle{font-size:13px;line-height:1.55;}
  .home-cat-grid,.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .home-cat{min-height:120px;padding:14px 10px;}
  .home-cat-name{font-size:13px;}
  .stats-bar{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .stat-item{flex:none;min-width:0;}
  .trust-badges{grid-template-columns:1fr 1fr;gap:10px 8px;padding:14px 12px;}
  .trust-badge{font-size:12px;}
  .business-card{grid-template-columns:84px minmax(0,1fr);}
  .card-body{padding:10px 12px;}
  .v-badge-txt{display:none;}
  .card-actions{gap:6px;}
  .footer-grid{grid-template-columns:1fr;gap:20px;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}
  .mobile-cats{grid-template-columns:1fr;}
  .about-cta{padding:20px;flex-direction:column;align-items:flex-start;}
  .db-stats,.db-actions,.db-grid,.db-upgrade{grid-template-columns:1fr;}
  .db-hours-row{grid-template-columns:1fr;}
  .pagination a,.pagination-link,.cat-pagination a{min-width:40px;min-height:40px;}
}

/* ── 320px narrow phones ───────────────────────────────────── */
@media (max-width:360px){
  .nav-brand-text{font-size:12px;max-width:52vw;}
  .hero-badge{font-size:11px;padding:4px 10px;}
  .search-box{padding:10px;border-radius:12px;}
  .home-cat{min-height:112px;padding:12px 8px;}
  .home-cat-icon{width:40px;height:40px;font-size:22px;}
  .business-card{grid-template-columns:1fr;}
  .card-media{min-height:132px;}
  .vc-cover{margin-inline:16px;height:140px;}
  .vc-name{font-size:22px;}
  .vc-cta-bar.vc-cta-bar--dock .vc-cta{font-size:9px;padding:5px 0 4px;}
  .legal-block,.contact-card{padding:16px;}
}

/* ── Landscape phones ──────────────────────────────────────── */
@media (max-height:500px) and (orientation:landscape){
  .landing-hero{padding:20px 16px 24px;}
  .hero-title{font-size:22px;}
  .hero-subtitle{margin-bottom:12px;}
  .vc-cover{height:120px;}
  .vc-cta-bar.vc-cta-bar--dock{padding-top:4px;padding-bottom:4px;}
  .mobile-menu{width:min(300px,70vw);}
}
