/* Mobile is the reference layout. Wider columns are inferred conservatively. */
@media(min-width:700px) {
  .desktop-nav {
    display:flex
  }

  .header-main {
    min-height:85px
  }

  .contact-strip {
    font-size:14px
  }

  .hero {
    padding-top:70px
  }

  .hero-art {
    max-width:850px;
    margin-top:-25px;
    margin-bottom:-35px
  }

  .hero-description {
    font-size:20px
  }

  .hero .actions {
    position:relative;
    z-index:2
  }

  .service-grid,.process-grid,.case-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .service-card {
    padding:38px 35px 28px
  }

  .package-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .package-card {
    border-right:1px solid #ffffff66;
    padding:38px 28px
  }

  .package-card:nth-child(2n) {
    border-right:0
  }

  .package-card:nth-last-child(-n+2) {
    border-bottom:0
  }

  .stats dd {
    font-size:4rem
  }

  .about-visual {
    max-width:600px
  }

  .case-card {
    min-height:620px
  }

}

@media(min-width:1000px) {
  .section {
    padding-block:110px
  }

  .about-grid {
    grid-template-columns:1.08fr 1fr;
    gap:75px
  }

  .about .section-heading {
    max-width:760px
  }

  .about-visual {
    padding-top:10px
  }

  .celebration {
    aspect-ratio:4/4.7
  }

  .service-grid {
    gap:28px
  }

  .service-card {
    padding:40px 48px 28px
  }

  .process-grid {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }

  .process-card {
    padding:30px 24px
  }

  .process-card h3 {
    font-size:1.65rem;
    min-height:64px
  }

  .process-card .rule {
    margin-left:-24px;
    width:calc(100% + 24px)
  }

  .process-card p {
    font-size:20px
  }

  .process-cta .button {
    padding:12px 19px;
    gap:12px
  }

  .case-grid {
    gap:28px
  }

  .case-content {
    padding:40px 40px 42px
  }

  .case-card {
    min-height:620px
  }

  .case-card h3 {
    font-size:2.2rem;
    max-width:430px
  }

  .case-content>p:last-child {
    font-size:22px
  }

  .package-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

  .package-card:nth-child(2n) {
    border-right:1px solid #ffffff66
  }

  .package-card:nth-child(3n) {
    border-right:0
  }

  .package-card:nth-last-child(-n+3) {
    border-bottom:0
  }

  .package-card {
    padding:38px 30px
  }

  .package-card h3 {
    min-height:66px
  }

  .hero {
    padding-top:65px
  }

  .hero-art {
    max-width:850px;
    margin-top:-45px
  }

  .hero h1 {
    font-size:72px
  }

  .hero-description {
    max-width:650px
  }

}

@media(max-width:699px) {
  .hero h1 {
    font-size:clamp(2.15rem,9.4vw,3.7rem);
    letter-spacing:-.035em
  }

  .hero .eyebrow {
    font-size:14px
  }

  .hero-description {
    line-height:1.8;
    font-size:18px
  }

  .hero {
    padding-top:36px
  }

  .hero .actions .button {
    padding:13px 22px;
    font-size:14px;
    gap:10px
  }

  .hero .actions .button span {
    display:none
  }

  .hero-art {
    width:130%;
    max-width:none;
    position:relative;
    left:-15%;
    margin-top:0;
    margin-bottom:-20px
  }

  .section {
    padding-block:65px
  }

  .about .section-heading,.about-copy {
    text-align:center
  }

  .about-copy ul {
    text-align:left
  }

  .stats {
    flex-direction:column;
    gap:25px
  }

  .stats dd {
    font-size:3rem
  }

  .stats dt {
    font-size:16px
  }

  .about-visual {
    margin-top:8px
  }

  .about .section-heading {
    margin-bottom:48px
  }

  .service-card {
    padding:32px 28px 28px
  }

  .service-card h3 {
    font-size:1.6rem
  }

  .service-card p {
    font-size:22px
  }

  .section-heading {
    margin-bottom:32px
  }

  .services .section-heading h2 {
    font-size:2.2rem
  }

  .case-card {
    min-height:590px
  }

  .case-content {
    padding:32px
  }

  .case-content .icon-orbit {
    width:92px;
    height:92px;
    margin-bottom:42px
  }

  .case-card h3 {
    font-size:1.7rem
  }

  .case-content>p:last-child {
    font-size:20px
  }

  .case-grid {
    gap:22px
  }

  .package-banner {
    padding:60px 0
  }

  .package-card {
    padding:30px 28px
  }

  .package-body .section-heading {
    margin-bottom:42px
  }

  .package-body .section-heading h2 {
    font-size:2.2rem
  }

  .header-main {
    width:calc(100% - 32px);
    min-height:82px;
    gap:8px
  }

  .brand {
    width:175px;
    height:70px
  }

  .brand img {
    width:175px
  }

  .header-cta {
    font-size:11px;
    padding:12px 17px;
    white-space:nowrap
  }

  .contact-strip {
    padding:5px 5px;
    font-size:12px;
    line-height:1.6
  }

  .contact-strip a {
    padding:1px 8px
  }

  .contact-strip span {
    margin-right:2px
  }

  .site-footer .brand {
    width:150px
  }

  .site-footer .brand img {
    width:150px
  }

  .contact-actions {
    gap:8px
  }

  .contact-actions .button {
    font-size:16px;
    gap:12px;
    padding:16px 22px
  }

}

@media(max-width:360px) {
  .wrap {
    width:calc(100% - 32px)
  }

  .header-main {
    width:calc(100% - 20px)
  }

  .brand {
    width:150px
  }

  .brand img {
    width:150px
  }

  .header-cta {
    padding:11px 12px
  }

  .contact-strip a {
    padding:2px 6px;
    font-size:12px
  }

  .contact-strip a+a {
    border-left:0
  }

  .hero h1 {
    font-size:2.12rem
  }

  .hero .actions {
    gap:10px
  }

  .hero .actions .button {
    padding:12px 18px
  }

  .case-content {
    padding:28px 24px
  }

  .case-placeholder>span {
    max-width:105px
  }

  .package-card {
    padding-inline:23px
  }

}

@media print {
  .site-header {
    position:static
  }

  .back-to-top,.desktop-nav {
    display:none
  }

  .section {
    padding-block:30px
  }

  .hero-art {
    max-width:550px
  }

  .case-card,.service-card,.package-card {
    break-inside:avoid
  }

  body {
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact
  }

}

@media(max-width:699px) {
  .hero h1 {
    font-size:clamp(2.15rem,10.2vw,3.5rem)
  }

}
