/* Compact content layouts for the directory, trip tools and account workspaces.
   Loaded after the original page modules; shared page gutters live in layout.css. */

/* Results stay useful at wide sizes and cannot force a narrow phone viewport. */
.plgrid,
.tgrid,
.carergrid,
.trgrid,
.regrid,
.sxlist {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  gap: 12px;
}

.shfilters ~ .shgrid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 12px;
}

.mpgrid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  gap: 12px;
}

.plsec .ptsec,
.trsec,
.trpanel-sec,
.sxsec {
  margin-block: 16px;
}

.sxpage,
.mpwrap,
.rebody0,
.bizwrap,
.docwrap {
  padding-bottom: 24px;
}

.sxhero,
.mphero,
.dochero {
  padding-block: 20px 12px;
}

.sxbar.big input { font-size: 1rem; }
.sxchips.page { padding-top: 8px; }
.sxsh { gap: 12px; margin-bottom: 10px; }
.mpinfo { gap: 12px; margin-top: 20px; }
.reband { margin-block: 20px 12px; }
.reempty { padding-block: 24px; }

/* Listings retain useful photographs without making images dominate each row. */
.reimg { aspect-ratio: 16 / 10; }
.plcard .plphoto,
.plcard .plimg { aspect-ratio: 16 / 9; }
.phero { padding: 18px; gap: 18px; margin-block: 12px 18px; }
.pgrid,
.profgrid,
.profcols { gap: 20px; }
.pstats div { padding: 12px; }
.taskerpromo { padding: 18px 20px; gap: 16px; }
.tcard { padding: 14px; gap: 8px; }
.spdash { gap: 20px; }
.whatwhere { margin-block: 12px 8px; }

/* Travel: keep search and categories together and let short tabs end naturally. */
.trhero .trtabbar { margin-block: 12px 4px; }
.trhero .trbar { max-width: 1120px; margin-block: 12px 6px; }
.trhero .trbar.flbar { max-width: none; }
.trhero .trtabbar .wrap { max-width: none; padding-inline: 0; }
.trtabs2 { gap: 8px; padding-block: 2px 6px; }
.trtabs2 button { min-width: 76px; }
.trtabs2 .tti { width: 42px; height: 42px; border-radius: 12px; }
.trpane { min-height: 0; }
.trcard { min-height: 0; padding: 14px; }
.trdisc { margin-top: 20px; }
.hbsec { margin-block: 16px 8px; padding: 16px; }
.hbresult { min-height: 112px; padding: 14px; }
.hbstart,
.tp-hotel-widget { padding: 14px; }
.trinspocard { padding: 12px 14px; }

/* Service hubs use the same content rhythm as their directory results. */
.sector-hub section { padding-block: 28px; }
.sector-hub .eyebrow { margin-block: 12px 10px; }
.sh-hero {
  grid-template-columns: minmax(0, 1.6fr) minmax(240px, .7fr);
  gap: 32px;
}
.sh-hero h1 {
  font-size: clamp(30px, 3.4vw, 48px);
  letter-spacing: -.035em;
  line-height: 1.12;
}
.sh-lede { font-size: 1rem; line-height: 1.55; max-width: 70ch; }
.sh-actions { gap: 10px; margin-block: 16px; }
.sh-pills { gap: 8px; margin-block: 14px; }
.sh-art { padding: 24px; border-radius: 24px; }
.sh-art > span { font-size: 52px; margin-bottom: 12px; }
.sh-art > p { font-size: 24px; margin-block: 10px; }
.sh-nav { gap: 8px; padding-block: 12px; }
.sh-nav a { padding: 10px 14px; }
.sh-planner {
  grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr);
  gap: 28px;
}
.sector-hub h2 { font-size: clamp(25px, 2.5vw, 32px); letter-spacing: -.025em; }
.sh-planner > div > p,
.sh-advice p,
.sh-faq p,
.sh-business p { line-height: 1.6; }
.sh-steps { margin-block: 16px; }
.sh-steps li { padding-block: 10px; }
.sh-panel { padding: 20px; border-radius: 18px; }
.sh-panel progress { margin-bottom: 16px; }
.sh-panel h3 { margin-bottom: 16px; font-size: 22px; }
.sh-panel label:not(.sh-check) { margin-top: 14px; }
.sh-panel fieldset { margin-block: 16px; }
.sh-panel form > .btn { margin-top: 16px; }
.sh-brief { margin-top: 16px; padding: 14px; }
.sh-advice > div { gap: 20px; margin-top: 18px; }
.sh-advice article { padding-top: 14px; }
.sh-business > .wrap { gap: 32px; }
.sh-business li { padding-block: 10px; }
.sh-faq details { padding-block: 14px; }
.sh-home-links { gap: 12px; }
.sh-home-links a { padding: 18px; border-radius: 16px; }

/* Clinic and business demos retain functional calendar space, with smaller framing. */
.clhero { padding-block: 24px; }
.clgrid { grid-template-columns: minmax(0, 1.5fr) minmax(230px, .65fr); gap: 28px; }
.clhero h1 { font-size: clamp(30px, 3.6vw, 48px); line-height: 1.1; }
.clhero .lede { font-size: 1rem; line-height: 1.55; }
.clphone { width: 240px; padding: 10px; border-radius: 30px; }
.clscreen { min-height: 340px; border-radius: 22px; padding: 12px; }
.clsec { padding-block: 20px 28px; }
.cltry { margin-bottom: 20px; }
.clh2 { margin-block: 24px 14px; }
.clfind { margin-block: 20px; padding: 16px; }
.clcta { margin-top: 24px; padding: 24px 18px; }
.clive { padding: 18px; margin-block: 16px; border-radius: 18px; }
.clive-grid { gap: 12px; margin-block: 16px; }
.clive-card { padding: 16px; border-radius: 14px; }
.bizwrap .chartrow { gap: 14px; }
.bizwrap .dcard { padding: 16px; margin-bottom: 14px; }
.bizwrap .kpis { margin-block: 12px; }
.bizwrap .biztabs { margin-block: 8px 14px; }
.cltry .bizwrap { padding: 0; }

/* Connected business tools and communications are workspaces, with concise headers. */
.bc-page,
.comm-page { padding-block: 24px; }
.bc-heading,
.comm-heading { gap: 20px; margin-bottom: 20px; }
.bc-page h1,
.comm-heading h1 {
  font-size: clamp(30px, 3.2vw, 44px);
  line-height: 1.12;
  letter-spacing: -.035em;
  margin-block: 6px 10px;
}
.bc-overview { gap: 28px; padding: 24px; border-radius: 20px; }
.bc-overview h2,
.bc-section h2 { font-size: 25px; }
.bc-page p { line-height: 1.55; }
.bc-section { padding-block: 24px; }
.bc-search { margin-block: 16px; }
.bc-providers,
.bc-quality { gap: 16px; margin-top: 18px; }
.bc-provider,
.bc-quality article { padding: 20px; border-radius: 18px; }
.bc-provider-title { margin-bottom: 18px; }
.bc-provider > small { margin-top: 16px; }
.bc-result { padding-block: 14px; }
.comm-sign { padding: 18px 20px; gap: 20px; margin-bottom: 16px; border-radius: 18px; }
.comm-stats { gap: 12px; }
.comm-stats button { padding: 16px; border-radius: 14px; }
.comm-stats strong { font-size: 1.6rem; }
.comm-toolbar { gap: 12px; margin-block: 18px; flex-wrap: wrap; }
.comm-grid { gap: 16px; }
.comm-card { padding: 18px; border-radius: 18px; }
.comm-empty { padding: 20px 12px; }
.comm-delivery { margin-top: 16px; gap: 24px; }
.comm-guide { gap: 24px; margin-top: 24px; }

/* Tax preparation: reduce repeated framing and gaps, retain full-size form controls. */
.th-hero { padding-block: 24px 18px; }
.th-hero h1 { font-size: clamp(30px, 3.2vw, 44px); letter-spacing: -.035em; }
.th-hero p { max-width: 80ch; }
.th-workspace { padding-block: 18px 28px; }
.th-top { gap: 16px; margin-block: 16px; }
.th-tabs { gap: 8px; margin-bottom: 16px; padding-bottom: 4px; }
.th-tabs button { padding: 10px 16px; }
.th-summary { gap: 12px; margin-top: 18px; }
.th-summary > div { padding: 14px; border-radius: 14px; }
.th-summary b { font-size: 22px; margin-top: 4px; }
.th-grid,
.th-stages { gap: 16px; align-items: start; }
.th-card { padding: 20px; margin-bottom: 16px; border-radius: 18px; }
.th-card h2 { margin-bottom: 14px; }
.th-card p { line-height: 1.55; }
.th-card input:not([type=checkbox]),
.th-card select,
.th-card textarea { margin-block: 6px 14px; }
.th-formgrid { gap: 16px; }
.th-privacy { padding: 12px 14px; }
.th-progress { margin-block: 18px; }
.th-progress progress { margin-block: 8px; }
.th-task { padding-block: 12px; }
.th-guide li { padding-block: 6px; line-height: 1.55; }
.th-foot { margin-top: 20px; }
.th-ledger .dochero { padding-top: 0; }

/* Business marketing tools keep the editor and preview close to their controls. */
.fbhero,
.mkhero { padding-block: 24px; }
.fbgrid,
.mkgrid,
.mkhgrid { gap: 24px; }
.fbcopy h1,
.mkhero h1 { font-size: clamp(30px, 3.5vw, 48px); line-height: 1.1; }
.mksec,
.mkstudio,
.mkhelp { padding-block: 24px; }
.mkcards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; }
.mkcard { padding: 18px; border-radius: 16px; }
.mkst { gap: 20px; }
.mkprev { padding: 12px; }
.mkprev canvas { max-height: 65vh; }
.mkreq,
.mkkit { padding: 20px; border-radius: 18px; }

@media (min-width: 1000px) {
  .pgrid { grid-template-columns: minmax(0, 1.55fr) minmax(300px, .8fr); }
  .docgrid { grid-template-columns: minmax(0, 1.75fr) minmax(320px, 1fr); }
}

@media (max-width: 850px) {
  .sh-hero { grid-template-columns: minmax(0, 1fr) 220px; gap: 20px; }
  .sh-planner { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .sh-business > .wrap { gap: 24px; }
  .clgrid { grid-template-columns: minmax(0, 1fr); }
  .bc-overview { gap: 20px; }
}

@media (max-width: 760px) {
  .sxhero,
  .mphero,
  .dochero,
  .clhero,
  .fbhero,
  .mkhero,
  .th-hero { padding-block: 18px 14px; }

  .bc-page,
  .comm-page { padding-block: 18px; }
  .bc-heading,
  .comm-heading { margin-bottom: 16px; }
  .bc-page h1,
  .comm-heading h1 { font-size: 30px; }
  .bc-overview,
  .bc-provider,
  .bc-quality article,
  .comm-card { padding: 16px; }
  .comm-sign { padding: 16px; gap: 12px; }
  .comm-guide,
  .comm-delivery { gap: 16px; }
  .th-card { padding: 16px; }
  .th-tabs button { min-height: 44px; }
  .th-top,
  .th-progress { margin-block: 14px; }

  .pgrid,
  .profgrid,
  .profcols,
  .spdash { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .phero { padding: 16px; gap: 14px; }
  .phero .pmain { min-width: min(220px, 100%); }
  .sxsh { align-items: flex-start; flex-wrap: wrap; gap: 8px; }
  .sxpage .grid { grid-template-columns: minmax(0, 1fr); }
  .regrid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
  .pmap { height: clamp(300px, 55vh, 480px); }
  .pmapside { max-height: none; }
  .trtabs2 .tti { width: 40px; height: 40px; }
  .trtabs2 button { min-width: 72px; }
  .trhero .trbar { margin-top: 10px; }
  .trpanel-sec { margin-block: 14px; }
  .hbresult { min-height: 0; }

  :is(.sector-hub, .bc-page, .comm-page, .th-workspace, .clive,
      .bizwrap, .trhero, .trpane, .sxpage, .mpwrap, .mphero,
      .rehero, .rebody0, .plhero, .plsec, .evhero, .shfilters,
      .docwrap, .dochero, .profhero, .mkstudio, .mkhelp) :is(button:not(.calcell):not(.calev):not(.dblk), select) {
    min-height: 44px;
  }
  :is(.sector-hub, .bc-page, .comm-page, .th-workspace, .clive,
      .bizwrap, .trhero, .trpane, .sxpage, .mphero, .rehero,
      .docwrap, .dochero, .profhero) input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]) {
    min-height: 44px;
    font-size: 16px;
  }
  .bizwrap .calarrow,
  .docwrap .dx { min-width: 44px; }
  .bizwrap .deskday {
    flex-wrap: wrap;
    min-width: 0;
    max-width: 100%;
  }
  .bizwrap .deskday .ddatein {
    min-width: 0;
    max-width: 100%;
  }
  .sector-hub .sh-check,
  .th-workspace .th-check,
  .comm-delivery label { min-height: 44px; }
}

@media (max-width: 600px) {
  .sector-hub section { padding-block: 22px; }
  .sh-hero { grid-template-columns: minmax(0, 1fr); }
  .sh-hero h1 { font-size: 30px; }
  .sh-panel { padding: 16px; }
  .sh-nav { flex-wrap: nowrap; overflow-x: auto; padding-block: 10px; }
  .sh-nav a { flex: none; display: inline-flex; align-items: center; min-height: 44px; }
  .sh-advice > div,
  .sh-business > .wrap,
  .sh-home-links { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .sh-business li { padding-block: 8px; }
  .sh-steps { margin-block: 12px; }
  .sh-steps li { padding-block: 6px; }
  .clhero h1,
  .mkhero h1,
  .fbcopy h1 { font-size: 30px; }
  .clcta { padding: 20px 16px; }
  .hbsec { padding: 14px; }
  .mpgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .mpbar { align-items: flex-start; gap: 10px; }
  .mpfilt { width: 100%; }
  .mpfilt select { min-width: 0; flex: 1; }
  .mpbody { padding: 10px; }
  .mpinfo { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .shfilters ~ .shgrid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 380px) {
  .mpgrid { grid-template-columns: minmax(0, 1fr); }
}
