/* Phone and tablet refinements. Desktop layout remains untouched. */
.business-mobile-lead-break { display: none; }
.closing-mobile-break { display: none; }
.software-hero-intro--mobile { display: none; }
.hardware-hero-intro--mobile { display: none; }
.store-hero-copy--mobile { display: none; }
.blog-hero-title--mobile,
.blog-hero-summary--mobile { display: none; }

@media (max-width: 760px) {
  main h1 { font-size: clamp(34px, 10vw, 46px) !important; line-height: 1.04 !important; }
  main h2 { font-size: clamp(30px, 8.7vw, 38px) !important; line-height: 1.06 !important; }
  main h3 { font-size: clamp(22px, 6.5vw, 30px) !important; line-height: 1.1 !important; }

  .hero-shell, .hero-copy, .pricing-hero-content, .pricing-hero-copy, .hardware-hero-copy,
  .care-hero-copy, .support-hero-copy, .help-hero-copy,
  .lifetime-hero-inner, .lifetime-hero-copy, .care-terms-hero-inner,
  .care-terms-hero-copy, .blog-hero-copy, .stories-hero-shell, .stories-hero-copy {
    align-items: center !important;
    text-align: center !important;
  }

  .hero-copy > *, .pricing-hero-copy > *, .pricing-hero-content > *, .hardware-hero-copy > *,
  .care-hero-copy > *, .support-hero-copy > *, .help-hero-copy > *,
  .lifetime-hero-copy > *, .care-terms-hero-copy > *, .blog-hero-copy > *,
  .stories-hero-copy > * {
    margin-inline: auto;
  }

  .hero-actions, .hardware-hero-actions, .care-hero-actions,
  .pricing-hero-actions, .support-hero-actions, .care-terms-hero-actions,
  .lifetime-hero-actions, .blog-hero-actions {
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
  }

  .hero-actions .button, .hardware-hero-actions .button, .care-hero-actions .button,
  .pricing-hero-actions .button, .support-hero-actions .button,
  .care-terms-hero-actions .button, .lifetime-hero-actions .button,
  .blog-hero-actions .button, .pricing-final a, .support-closing-button,
  .care-cta a, .care-final a, .lifetime-closing a, .care-terms-closing a {
    width: max-content !important;
    min-width: 0 !important;
    padding-inline: 16px !important;
  }

  /* Every paired CTA shares one fixed footprint: outline is never wider than
     its primary partner, regardless of label length or breakpoint. */
  .hero-actions > a,
  .software-hero-actions > a,
  .hardware-hero-actions > a,
  .business-hero-actions > a,
  .camps-hero-actions > a,
  .software-closing-actions > a,
  .hardware-closing-actions > a {
    inline-size: 112px !important;
    min-inline-size: 112px !important;
    min-height: 44px;
    justify-content: center;
  }

  .hero h1, .pricing-hero h1, .hardware-hero h1, .care-hero h1,
  .support-hero h1, .help-hero h1, .lifetime-hero h1,
  .care-terms-hero h1, .blog-hero h1 { max-width: 18ch; }

  .statement-title, .final-statement-title, .pricing-final h2,
  .closing h2, .hardware-closing h2, .support-closing h2,
  .blog-cta h2, .lifetime-closing h2, .care-terms-closing h2 { max-width: 18ch; margin-inline: auto; text-align: center; }

  .hardware-hero-media img, .care-hero-media img,
  .store-hero-device img,
  .store-box-media img, .store-box-image img { max-height: min(48vw, 300px); object-fit: contain; }

  .support-resource-card img, .support-help-card-media img, .help-card img,
  .article-card img { max-width: 100%; object-fit: contain; }

  .blog-featured-image img,
  .blog-card-image img { width: 100%; height: 100%; object-fit: cover; }

  .blog-article-actions, .article-actions, .blog-meta-actions { display: flex !important; flex-wrap: nowrap !important; align-items: center; gap: 10px !important; font-size: 12px !important; }
  .blog-article-actions > *, .article-actions > *, .blog-meta-actions > * { white-space: nowrap; }

  .about-redovar-color-panel { min-height: 88px !important; }
  .about-redovar-title-panel { padding-top: 54px !important; }

  .software-pair-line { max-width: 30ch; margin-inline: auto; font-size: clamp(28px, 8vw, 38px) !important; text-align: center; }
  .care-primary-button, .care-plan-actions .care-primary-button,
  .care-primary-button--hero, .coverage-builder-action, .coverage-close-action,
  .care-terms-button { width: max-content !important; min-width: 0 !important; padding-inline: 16px !important; }
  .care-plan-actions, .care-support-links { align-items: center !important; justify-content: center !important; text-align: center; }
  .care-support-links { display: flex !important; flex-wrap: wrap; gap: 12px 20px !important; }
  .coverage-close, .coverage-close-copy, .coverage-builder-head { text-align: center !important; align-items: center !important; }
  .coverage-close h2, .coverage-builder h2 { max-width: 21ch; margin-inline: auto; }

  .lifetime-page-actions-inner, .care-terms-page-actions-inner { display: flex !important; flex-direction: row !important; justify-content: center; gap: 12px !important; }
  .lifetime-page-actions button, .care-terms-page-actions button { width: max-content !important; min-height: 38px !important; padding-inline: 10px !important; }

  .blog-hero-story-link h1,
  .customer-stories-hero h1 { max-width: 21ch; margin-inline: auto; }

  /* Keep each article's heading and deck on one shared left edge. */
  .blog-featured-title,
  .blog-featured-small h3,
  .blog-card h3,
  .blog-featured-summary,
  .blog-featured-small > p,
  .blog-card > p {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .blog-featured-summary,
  .blog-featured-small > p,
  .blog-card > p {
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  /* The store hero keeps its editorial composition, with the supporting
     statement anchored on the right rather than drifting under the title. */
  .store-hero-shell { align-items: end; }
  .store-hero-copy { justify-self: end !important; text-align: left !important; }
  .store-hero-copy > * { margin-left: auto; margin-right: 0; }
  .store-hero-copy h2 { max-width: 20ch; }

  /* Product imagery is deliberately contained on phone and tablet widths. */
  .store-hero-frame { overflow: hidden; }
  .store-hero-visual { transform: scale(.84); transform-origin: center bottom; }
  .store-hero-device { max-width: 104vw !important; }
  .store-box-image { min-height: 190px !important; padding: 18px !important; }
  .store-box-image img { width: 100%; height: 100%; max-height: 220px; object-fit: contain; }

  .focus-head, .focus-closing, .reliability-head { text-align: center; }
  .focus-head h2, .focus-head > p, .focus-closing p, .reliability-head h2 { margin-inline: auto; }
  .focus-head h2 { max-width: 18ch; }
  .focus-closing p { max-width: 28ch; }

  .support-resource-card > img { width: 100%; height: auto; object-fit: contain; }
  .support-resource-card { overflow: hidden; }
  .support-help-card-copy { text-align: center; }
  .support-help-card-copy > * { margin-inline: auto; }
  .support-help-card-media { overflow: hidden; }
  .support-help-card-media img { width: 100%; height: 100%; object-fit: contain !important; }

  .pricing-final-inner, .hardware-closing-head, .lifetime-closing-inner,
  .care-terms-closing-inner, .support-closing-inner, .closing-inner {
    align-items: center !important;
    justify-content: center !important;
    text-align: center;
  }
  .pricing-final-actions, .hardware-closing-actions, .closing-inner > a,
  .support-closing-button, .lifetime-button, .care-terms-button {
    align-self: center;
    justify-content: center !important;
  }
  .pricing-final h2, .hardware-closing h2 { max-width: 17ch; margin-inline: auto; }

  .lifetime-hero { padding-top: calc(var(--header-h) + 92px) !important; }
  .lifetime-hero-copy, .care-terms-hero-copy { text-align: center !important; }
  .lifetime-hero-copy > *, .care-terms-hero-copy > * { margin-inline: auto; }

  .article-summary { max-width: 33ch; margin-inline: auto; text-align: center; }
  .final-statement { padding-block: clamp(78px, 16vw, 116px) !important; }
  .final-statement-title { font-size: clamp(38px, 10.8vw, 46px) !important; line-height: .96 !important; }
  .final-statement-title .final-statement-line { white-space: nowrap; }
  .stories-hero-copy h1 { max-width: 19ch; }
  .camps-hero-copy { align-items: center !important; text-align: center !important; }
  .camps-hero-copy > * { margin-inline: auto; }
  .camps-hero-actions { justify-content: center !important; }
  .blog-hero-story-link h1 { font-size: clamp(32px, 8.4vw, 42px) !important; line-height: 1.03 !important; }
  .blog-featured-summary { max-width: 32ch; }

  /* Hardware: preserve the image-led hero without a dead black tail. */
  .hardware-hero,
  .hardware-hero-inner { min-height: 620px !important; }
  .hardware-hero-inner {
    align-items: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .hardware-hero-copy { padding-top: 0 !important; }
  .hardware-hero-intro--desktop { display: none; }
  .hardware-hero-intro--mobile { display: inline; }
  .hardware-hero-media {
    background-size: auto 122% !important;
    background-position: 68% 28% !important;
  }

  .hardware-closing-head,
  .software-closing-inner,
  .camp-closing-inner,
  .business-closing-inner,
  .pricing-final-inner {
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    text-align: center !important;
  }
  .hardware-closing h2,
  .software-closing h2,
  .camp-closing h2,
  .business-closing h2,
  .pricing-final h2 { margin-inline: auto; }
  .hardware-closing h2,
  .software-closing h2 { max-width: 16ch; }
  .hardware-closing h2,
  .software-closing h2 {
    width: max-content !important;
    max-width: calc(100vw - 40px) !important;
    white-space: nowrap;
    font-size: clamp(30px, 8.5vw, 38px) !important;
  }
  .camp-closing h2,
  .business-closing h2,
  .pricing-final h2 { max-width: 18ch; }

  .software-hero-inner,
  .software-hero-copy { align-items: center !important; text-align: center !important; }
  .software-hero-copy > * { margin-inline: auto; }
  .software-hero-intro--desktop { display: none; }
  .software-hero-intro--mobile { display: inline; }
  .software-hero-actions {
    width: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    margin-inline: auto !important;
  }
  .software-feature { min-height: 94px !important; padding: 16px 18px !important; }
  .software-feature h3 { font-size: 15px !important; }
  .software-feature p { margin-top: 5px !important; font-size: 11px !important; line-height: 1.45 !important; }
  .software-pair-line {
    margin-left: 0 !important;
    margin-right: auto !important;
    max-width: none !important;
    font-size: clamp(15px, 4.5vw, 18px) !important;
    line-height: 1.35 !important;
    text-align: left !important;
    white-space: nowrap;
    margin-top: clamp(72px, 15vw, 108px) !important;
  }
  .software-pair-desktop-space { display: none; }
  .software-changes-connector {
    height: 38px !important;
    margin: 20px auto !important;
  }

  .business-hero-copy > p { max-width: 39ch; }
  .business-hero-copy > p { text-wrap: balance; }
  .business-mobile-lead-break { display: block; }
  .closing-mobile-break { display: block; }

  /* Keep the schedule action as an action, not a full-width panel control. */
  .business-schedule-toolbar {
    align-items: center !important;
    flex-direction: row !important;
    justify-content: space-between !important;
  }
  .business-schedule-toolbar > div {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .business-schedule-toolbar strong,
  .camp-schedule-topbar strong { white-space: nowrap; }
  .business-schedule-change {
    width: max-content !important;
    min-width: 0 !important;
    padding-inline: 10px !important;
    flex: 0 0 auto;
    align-self: flex-end;
  }

  .camp-schedule-topbar {
    align-items: center !important;
    flex-direction: row !important;
    justify-content: space-between !important;
  }
  .camp-schedule-topbar > div {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .camp-schedule-change {
    width: max-content !important;
    min-width: 0 !important;
    padding-inline: 10px !important;
    flex: 0 0 auto;
    align-self: flex-end;
  }
  .campers-panel-head { margin-bottom: 20px !important; }
  .campers-panel-foot {
    align-items: center !important;
    flex-direction: row !important;
    justify-content: flex-end !important;
  }
  .campers-panel-foot button { margin-left: auto; }

  .pricing-final-actions {
    width: 100% !important;
    justify-content: center !important;
  }
  .pricing-final-actions a {
    width: max-content !important;
    align-self: center !important;
  }

  .blog-hero-title--desktop,
  .blog-hero-summary--desktop { display: none; }
  .blog-hero-title--mobile,
  .blog-hero-summary--mobile { display: inline; }
  .blog-hero-summary { max-width: none !important; }
  .blog-cta-inner {
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    text-align: center !important;
  }
  .blog-cta-inner > a { align-self: center !important; }

  /* Changelog has its own compact editorial type scale. */
  .changelog-left h1 { font-size: clamp(30px, 8.5vw, 38px) !important; }
  .changelog-categories h2 { font-size: 13px !important; line-height: 1.2 !important; }
  .changelog-month-heading h2 { font-size: clamp(21px, 6vw, 25px) !important; }
  .changelog-release-card h3 { font-size: clamp(16px, 4.8vw, 19px) !important; }

  /* About uses its own compact phone composition: statement, image band,
     terracotta label, then its reading column and a slim blue close. */
  .about-page .about-intro-copy {
    min-height: 0;
    padding: 32px 24px;
  }
  .about-page .about-intro h1 {
    font-size: clamp(28px, 8vw, 32px) !important;
    line-height: 1.08 !important;
  }
  .about-page .about-intro-media {
    min-height: 40vw;
  }
  .about-page .about-redovar-title-panel {
    min-height: 64px !important;
    padding: 16px 24px !important;
  }
  .about-page .about-redovar-title-panel h2 {
    font-size: 32px !important;
    line-height: 1 !important;
  }
  .about-page .about-redovar-copy-inner {
    padding: 38px 24px 46px;
  }
  .about-page .about-redovar-copy p,
  .about-page .about-redovar-copy p:first-child {
    font-size: 16px;
    line-height: 1.52;
  }
  .about-page .about-redovar-color-panel {
    min-height: 16px !important;
  }

  .store-hero-shell {
    padding-top: calc(var(--store-header-h) + 92px) !important;
    padding-bottom: 0 !important;
    gap: 0 !important;
    align-items: start !important;
    align-content: start !important;
  }
  .store-hero { min-height: 520px !important; }
  .store-hero-copy--desktop { display: none; }
  .store-hero-copy--mobile { display: inline; }
  .store-hero-copy {
    position: absolute !important;
    right: var(--store-gutter) !important;
    bottom: 44px !important;
    width: min(62vw, 230px) !important;
    max-width: none !important;
    text-align: left !important;
  }
  .store-hero-copy h2 {
    font-size: clamp(25px, 7.5vw, 29px) !important;
    line-height: 1.02 !important;
  }

  /* Product Lifetime Policy keeps its document headings deliberately quiet on phones. */
  .lifetime-page .lifetime-copy header > h2,
  .lifetime-page .lifetime-document-intro > h2,
  .lifetime-page .lifetime-copy-section > h2 {
    font-size: clamp(20px, 5.8vw, 23px) !important;
    line-height: 1.14 !important;
    letter-spacing: -.025em !important;
  }

  /* Care: reserve the top-right corner of the benefits heading for the animation control. */
  .care-page .care-benefits .care-shell { position: relative; }
  .care-page .care-animation-controls {
    top: -250px !important;
    right: var(--gutter) !important;
  }
  .care-page .care-benefit-copy,
  .care-page .care-benefit-copy h3,
  .care-page .care-benefit-copy p { text-align: center; }
  .care-page .care-support-card,
  .care-page .care-support-copy,
  .care-page .care-support-mark {
    align-items: center;
    justify-items: center;
    text-align: center;
  }
  .care-page .care-support-mark { justify-content: center; }
  .care-page .care-support-copy { margin-inline: auto; }
  .care-page .care-support-links {
    align-items: center;
    justify-content: center;
    justify-items: center;
  }

  /* Care coverage uses a slightly right-weighted device visual and a centered closing action. */
  .coverage-hero-visual img { transform: translateX(8%); }
  .coverage-close-inner {
    align-items: center !important;
    justify-content: center !important;
    text-align: center;
  }
  .coverage-close-copy { margin-inline: auto; }

  /* The Gen 1 device stays inside its hero rather than inheriting the Store landing-page scale-down. */
  .store-hero[data-hero] .store-hero-visual {
    transform: none !important;
    transform-origin: center bottom;
  }
  .store-hero[data-hero] .store-hero-device {
    width: min(112vw, 620px) !important;
    max-width: none !important;
    bottom: -8px !important;
  }

  /* Long-form Legal and Help articles share the compact policy-heading scale. */
  .legal-page .legal-chapter > h2,
  .legal-page .legal-chapter > h3,
  .care-terms-page .care-terms-document-intro > h2,
  .care-terms-page .care-terms-copy-section > h2,
  .care-terms-page .care-terms-copy-section > h3,
  .article-main .article-head h1,
  .article-main .article-section h2,
  .article-main .article-section h3,
  .help-doc-page .help-doc-header h1,
  .help-doc-page .help-doc-section h2,
  .help-doc-page .help-doc-section h3 {
    font-size: clamp(20px, 5.8vw, 23px) !important;
    line-height: 1.14 !important;
    letter-spacing: -.025em !important;
  }

  .article-main .article-head h1,
  .article-main .article-section h2,
  .article-main .article-section h3 {
    font-weight: 500 !important;
  }

  /* Keep the Care Terms title clear of its copy control on a phone. */
  .care-terms-page .care-terms-hero-copy {
    transform: translateY(56px);
  }
  .care-terms-page .care-terms-hero {
    min-height: 472px !important;
  }

  /* Keep the legal action controls on one centered line and run their rules edge to edge. */
  .legal-page .legal-page-actions-inner,
  .lifetime-page .lifetime-page-actions-inner,
  .care-terms-page .care-terms-page-actions-inner {
    align-items: center !important;
    justify-content: center !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    text-align: center;
  }
  .care-terms-page .care-terms-document-meta,
  .care-terms-page .care-terms-page-actions {
    width: calc(100% + (var(--gutter) * 2));
    margin-left: calc(var(--gutter) * -1);
    margin-right: calc(var(--gutter) * -1);
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }

  /* Support Hub: card copy remains; the phone-only media panels are intentionally removed. */
  .support-hub-page .support-help-card-media {
    display: none !important;
  }
  .support-hub-page .support-help-card-copy {
    min-height: 0 !important;
  }
}

@media (max-width: 520px) {
  main h1 { font-size: clamp(32px, 9.4vw, 40px) !important; }
  main h2 { font-size: clamp(28px, 8vw, 34px) !important; }
  .hero-actions, .hardware-hero-actions, .care-hero-actions,
  .pricing-hero-actions, .support-hero-actions, .care-terms-hero-actions,
  .lifetime-hero-actions, .blog-hero-actions { flex-direction: column; gap: 10px !important; }
  .hero-actions .button, .hardware-hero-actions .button, .care-hero-actions .button,
  .pricing-hero-actions .button, .support-hero-actions .button,
  .care-terms-hero-actions .button, .lifetime-hero-actions .button,
  .blog-hero-actions .button { min-height: 40px; }
  .store-hero-copy h2 { max-width: 17ch; margin-left: auto; font-size: clamp(31px, 9vw, 39px) !important; }
  .store-hero-name h1 { font-size: clamp(44px, 14vw, 58px) !important; }
  .store-hero-image { object-position: 58% center; }

  .store-hero-copy { max-width: 265px; }
  .store-hero-visual { transform: scale(.72); transform-origin: center bottom; }
  .store-hero-device { max-width: 96vw !important; }
  .store-box-image { min-height: 160px !important; padding: 12px !important; }
  .store-box-image img { max-height: 180px !important; }

  .focus-head h2 { max-width: 15ch; }
  .focus-closing p { max-width: 25ch; }

  .support-help-card-copy { min-height: 0 !important; padding: 28px 22px !important; }
  .support-help-card-media { display: none !important; }

  .hardware-hero,
  .hardware-hero-inner { min-height: 560px !important; }
  .hardware-hero-inner { padding-bottom: 0 !important; }
}
