/* KG Consulting — responsive refinement, November 2026.
   Mobile/tablet only. Desktop styling and all copy remain unchanged.
   This file must load after the shared stylesheet and any page-specific CSS. */

@media (max-width: 900px) {
  html { -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
  body { overflow-wrap: break-word; }
  .wrap { min-width: 0; }
  .wrap > *, .split > *, .call > *, .paths > *, .about-intro__grid > *,
  .about-story__grid > *, .about-work__grid > *, .about-outside__grid > * { min-width: 0; }
  img, video, iframe { max-width: 100%; }
  .menu-toggle { min-width: 44px; min-height: 44px; justify-content: center; }
  .nav { z-index: 60; overscroll-behavior: contain; }
  .nav__list a, .nav .btn { min-height: 44px; display: inline-flex; align-items: center; }
  .nav .btn { justify-content: center; text-align: center; }
  .btn { min-height: 46px; line-height: 1.35; text-align: center; }
  .page-head h1, .about-intro h1 { overflow-wrap: normal; }
  .quote--home p, .quote p { white-space: normal !important; text-wrap: balance; }
  .about-cta h2 { white-space: normal !important; text-wrap: balance; }
  .scheduler, .calendar-embed, .beehiiv-embed, .beehiiv-signup { width: 100%; min-width: 0; max-width: 100%; }
  .calendar-embed iframe, .scheduler iframe, .beehiiv-embed iframe { display: block; width: 100% !important; max-width: 100% !important; }
  .services-new .svc-hero h1 { white-space: normal !important; max-width: none; }
  .services-new .svc-hero__inner, .services-new .svc-hero__bottom { min-width: 0; }
  .services-new .svc-offer__intro, .services-new .svc-offer__body { min-width: 0; }
  .services-new .svc-offer__body .year__what { overflow-wrap: break-word; }
}

/* Intermediate tablet: avoid squeezed columns and large portrait gaps. */
@media (min-width: 681px) and (max-width: 900px) {
  :root { --gutter: clamp(1.5rem, 4vw, 2.5rem); --section: clamp(4rem, 8vw, 6rem); }
  .hero .wrap { gap: 2.5rem; }
  .hero .portrait { max-width: 350px; }
  .page-head { padding: 4rem 0 3rem; }
  .about-intro__grid, .about-story__grid, .about-work__grid, .about-outside__grid { grid-template-columns: 1fr; gap: 2rem; }
  .about-intro__portrait, .about-work__photo { max-width: 420px; }
  .services-new .svc-hero__bottom { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 2rem; }
  .services-new .svc-group__intro, .services-new .svc-group--tint .svc-group__intro {
    grid-template-columns: minmax(0, 1fr) minmax(0, .75fr); gap: 2rem;
  }
  .services-new .svc-group__intro h2 { font-size: clamp(2.7rem, 5.8vw, 4rem); }
  .services-new .svc-offer { grid-template-columns: minmax(0, 1fr); gap: 1.3rem; padding: 3rem 0; }
  .services-new .svc-offer h3 { max-width: none; font-size: clamp(2.3rem, 4.5vw, 3rem); }
  .services-new .svc-offer__summary { max-width: 39em; }
  .services-new .svc-offer__action { margin-top: 1.3rem; }
  .services-new .svc-offer__body { max-width: 44em; }
}

/* Phones: comfortable reading widths and deliberate vertical rhythm. */
@media (max-width: 680px) {
  :root { --gutter: clamp(1rem, 5vw, 1.4rem); --section: clamp(3.25rem, 11vw, 4.6rem); }
  html { scroll-padding-top: 82px; }
  body { font-size: 1rem; line-height: 1.65; }
  p { margin-bottom: 1.05em; }
  .site-header .wrap { height: 68px; }
  .nav { inset: 68px 0 0; padding: 1.5rem var(--gutter) max(2.5rem, env(safe-area-inset-bottom)); max-height: calc(100dvh - 68px); overflow-y: auto; }
  .nav__list { gap: .65rem; width: 100%; }
  .nav__list a { font-size: clamp(1.7rem, 7vw, 2rem); }
  .nav .btn { width: 100%; }
  .wordmark__name { font-size: .73rem; letter-spacing: .19em; }
  h1, h2, h3 { hyphens: none; }
  h2 { font-size: clamp(2.15rem, 8.1vw, 3rem); }
  h3 { font-size: clamp(1.85rem, 7vw, 2.5rem); }
  .label { font-size: .69rem; letter-spacing: .17em; margin-bottom: .8rem; }
  .page-head { padding: 3.2rem 0 2.4rem; }
  .page-head h1 { font-size: clamp(2.65rem, 10.8vw, 4rem); line-height: 1.03; }
  .page-head .lead, .hero__intro { font-size: 1.08rem; line-height: 1.6; }
  .hero { padding: 2.75rem 0 3.6rem; }
  .hero .wrap { gap: 1.9rem; }
  .hero__title { font-size: clamp(3rem, 11.5vw, 4.25rem); line-height: 1; }
  .hero__title .hero__line2 { max-width: 100%; }
  .hero .portrait { width: min(83%, 315px); margin: .6rem auto 0; }
  .ripples { inset: -10% -15% -9%; }
  .help__head { gap: .9rem; margin-bottom: 2rem; }
  .paths { gap: 1rem; }
  .path { padding: clamp(1.3rem, 5vw, 1.8rem); }
  .offer { grid-template-columns: minmax(0,1fr) auto; padding: 1.15rem 0; gap: .35rem .75rem; }
  .offer__name { font-size: 1.4rem; }
  .offer__dot { width: 40px; height: 40px; }
  .quote p { font-size: clamp(1.85rem, 7vw, 2.65rem); line-height: 1.18; }
  .quote blockquote { max-width: 100%; }
  .call, .split, .split--reverse { gap: 2rem; }
  .call__list li { grid-template-columns: 3.3rem minmax(0,1fr); gap: .7rem; padding: 1rem 0; }
  .about-intro { padding: 3rem 0; }
  .about-intro__grid, .about-story__grid, .about-work__grid, .about-outside__grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .about-intro h1 { font-size: clamp(2.7rem, 10vw, 4rem); }
  .about-intro__portrait { width: min(100%, 340px); }
  .about-work__photo { width: min(100%, 420px); aspect-ratio: 4 / 5; }
  .about-story, .about-work, .about-outside, .about-cta { padding-block: clamp(3rem, 10vw, 4.25rem); }
  .about-cta h2 { font-size: clamp(2rem, 8vw, 2.8rem); line-height: 1.12; }
  .ripple-band__rings { right: -30rem; opacity: .28; }
  .ripple-band__title { font-size: clamp(3rem, 13vw, 4.5rem); }
  .subscribe { max-width: 100%; }
  .subscribe input, .subscribe .btn { width: 100%; flex: 1 1 100%; min-height: 48px; }
  .beehiiv-signup { padding: 1rem; }
  .calendar-embed iframe { min-height: 620px; }
  .scheduler { padding: .6rem; overflow: hidden; }
  .field-row { grid-template-columns: 1fr; }
  .field input, .field textarea, .field select { font-size: 16px; }
  .footer__grid { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .footer__grid > :first-child { grid-column: auto; }
  .footer__base { flex-direction: column; gap: .65rem; }
  .footer__sign { font-size: clamp(1.9rem, 7vw, 2.35rem); }
  .btn { min-height: 48px; max-width: 100%; white-space: normal; padding: .85rem 1.35rem; }
  .actions { gap: .85rem; margin-top: 1.4rem; }
  /* Legacy Services styles, if used in other content. */
  .service { grid-template-columns: minmax(0,1fr); gap: 1.5rem; padding: 2.75rem 0; }
  .service__aside { position: static; }
  .category__head { max-width: 100%; }
  .category-photo { float: none; margin: 1.25rem 0; width: min(100%, 260px); max-width: 100%; }
  .subnav { top: 68px; }
  .subnav ul { gap: 1.2rem; }
  /* New editorial Services page. */
  .services-new .svc-hero { padding: 3.1rem 0 2.6rem; }
  .services-new .svc-hero__inner { display: block; }
  .services-new .svc-hero h1 { font-size: clamp(2.5rem, 10.2vw, 3.75rem); line-height: 1.04; letter-spacing: -.025em; text-wrap: balance; margin-bottom: 1.5rem; }
  .services-new .svc-hero__bottom { display: grid; grid-template-columns: minmax(0,1fr); gap: 1.4rem; }
  .services-new .svc-hero__lead { font-size: 1.04rem; line-height: 1.65; }
  .services-new .svc-hero__aside { padding: .3rem 0 .3rem 1.1rem; font-size: .93rem; }
  .services-new .svc-jump__inner { gap: .85rem 1.25rem; padding-block: 1rem; }
  .services-new .svc-jump__label { flex-basis: 100%; }
  .services-new .svc-jump a { min-height: 36px; display: inline-flex; align-items: center; }
  .services-new .svc-group { padding: 3.4rem 0 3rem; }
  .services-new .svc-group__intro, .services-new .svc-group--tint .svc-group__intro { display: flex; flex-direction: column; align-items: stretch; gap: 1.45rem; margin-bottom: 2.5rem; }
  .services-new .svc-group__intro .svc-group__copy { order: 0; }
  .services-new .svc-group__intro .svc-group__photo { order: 1; width: 100%; aspect-ratio: 3 / 2; max-height: none; }
  .services-new .svc-group__intro h2 { font-size: clamp(2.55rem, 9.3vw, 3.7rem); line-height: 1.05; }
  .services-new .svc-group__intro p:not(.svc-eyebrow) { font-size: 1.03rem; line-height: 1.63; }
  .services-new .svc-offer { display: grid; grid-template-columns: minmax(0,1fr); gap: 1.25rem; padding: 2.65rem 0; }
  .services-new .svc-offer h3 { font-size: clamp(2.15rem, 8vw, 3rem); max-width: none; margin-bottom: .8rem; }
  .services-new .svc-offer__number { margin-bottom: .75rem; }
  .services-new .svc-offer__summary { max-width: 40em; }
  .services-new .svc-offer__action { margin-top: 1.2rem; }
  .services-new .svc-offer__body { min-width: 0; max-width: 100%; padding-top: 0; font-size: 1rem; line-height: 1.67; }
  .services-new .svc-offer__body > p { margin-bottom: 1.15rem; }
  .services-new .svc-offer__body > p:first-child:not(.label) { font-size: 1.045rem; }
  .services-new .svc-offer__body .svc-offer__section-label { margin: 1.65rem 0 .95rem !important; }
  .services-new .svc-offer__body .year { margin-top: 1.2rem; }
  .services-new .svc-offer__body .topics { gap: .5rem; }
  .services-new .svc-offer__body .topics li { font-size: .875rem; line-height: 1.35; }
  .services-new .svc-final { padding: 3.5rem 0; }
  .services-new .svc-final h2 { font-size: clamp(2.65rem, 9.4vw, 3.7rem); line-height: 1.07; }
}

@media (max-width: 390px) {
  .services-new .svc-offer__action .btn, .services-new .svc-final .btn { width: 100%; }
  .year li { padding-left: 2.45rem; }
}

@media (prefers-reduced-motion: reduce) {
  .services-new *, .hero * { scroll-behavior: auto; }
}
