/* ==========================================================================
   8. Responsive rules
   ========================================================================== */

@media (min-width: 992px) {
  /* 2. Shared layout and components */

  .site-footer .footer-columns {
    display: grid;
    grid-template-columns: minmax(360px, 1.55fr) minmax(130px, .75fr) minmax(190px, .9fr) minmax(170px, .8fr);
    column-gap: 64px;
    margin-left: 0;
    margin-right: 0;
  }

  .site-footer .footer-columns > [class*="col-"] {
    width: auto;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 1080px) {
  /* 2. Shared layout and components */

  .site-nav {
    gap: 14px;
  }

  .site-nav a {
    font-size: 14px;
  }
}

@media (min-width: 576px) and (max-width: 991px) {
  .site-footer .footer-columns {
    display: grid;
    grid-template-columns: 1.1fr .8fr 1.25fr .85fr;
    column-gap: 24px;
    row-gap: 0;
    margin-right: 0;
    margin-left: 0;
  }

  .site-footer .footer-columns > [class*="col-"] {
    width: auto;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
  }
}

@media (max-width: 991px) {
  /* 2. Shared layout and components */

  :where(
    .google-ads-page,
    .sites-seo-page,
    .google-business-page,
    .diferenciais-page,
    .contact-page,
    .blog-page,
    .article-view-page,
    .thank-you-main,
    main.content-section
  ) {
    text-align: center;
  }

  :where(
    .google-ads-page,
    .sites-seo-page,
    .google-business-page,
    .diferenciais-page
  ) :where(.comparison-pills, .strategy-pills) {
    justify-content: center;
  }

  :where(
    .google-ads-page,
    .sites-seo-page,
    .google-business-page,
    .diferenciais-page
  ) :where(
    .keyword-visual,
    .site-map-visual,
    .speed-visual,
    .double-result-visual,
    .reviews-visual
  ) {
    text-align: left;
  }

  .contact-page :where(.contact-copy h1, .contact-copy > p, .contact-benefits, .contact-assurance) {
    margin-right: auto;
    margin-left: auto;
  }

  .contact-page .contact-copy {
    max-width: 760px;
    margin-right: auto;
    margin-left: auto;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
  }

  .contact-page .contact-copy h1 {
    width: 100%;
    max-width: 720px;
    font-size: clamp(36px, 6vw, 50px);
    line-height: 1.08;
    text-wrap: balance;
    overflow-wrap: anywhere;
  }

  .contact-page .contact-copy > p {
    width: 100%;
    max-width: 650px;
    font-size: 16px;
    overflow-wrap: anywhere;
  }

  .contact-page .contact-benefits {
    max-width: 640px;
    gap: 22px;
  }

  .contact-page .contact-benefits article {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 9px;
    max-width: 560px;
    margin-right: auto;
    margin-left: auto;
  }

  .contact-page .contact-benefits article > span {
    margin-top: 0;
  }

  .contact-page .contact-benefits article > div {
    min-width: 0;
    width: 100%;
  }

  .contact-page .contact-benefits h2 {
    font-size: 16px;
  }

  .contact-page .contact-benefits p {
    max-width: 520px;
    margin-right: auto;
    margin-left: auto;
    font-size: 13px;
  }

  .contact-page .contact-assurance {
    max-width: 640px;
  }

  .contact-page .contact-form-card > h2 {
    margin-right: auto;
    margin-left: auto;
  }

  .contact-page .form-field {
    text-align: left;
  }

  .blog-page .blog-page-heading {
    margin-right: auto;
    margin-left: auto;
  }

  .blog-page .blog-page-heading :where(h2, p) {
    margin-right: auto;
    margin-left: auto;
  }

  .blog-page .article-grid article > a {
    align-self: center;
    margin-right: auto;
    margin-left: auto;
  }

  .article-view-page :where(.article-hero-copy, .article-hero h1, .article-hero-copy > p) {
    margin-right: auto;
    margin-left: auto;
  }

  .article-view-page :where(.article-breadcrumb, .article-meta) {
    justify-content: center;
  }

  .article-view-page .article-content :where(ul, ol) {
    padding-left: 0;
    list-style-position: inside;
  }

  .article-view-page .article-content :where(pre, table) {
    text-align: left;
  }

  .site-footer .footer-columns > div {
    text-align: center;
  }

  .site-footer .footer-brand,
  .site-footer .footer-columns div > a:not(.brand),
  .site-footer .footer-cookie-settings {
    margin-right: auto;
    margin-left: auto;
  }

  .site-footer .footer-columns div > a:not(.brand),
  .site-footer .footer-cookie-settings {
    text-align: center;
  }

  .site-footer .footer-bottom {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  /* 3. Home page */

  .hero-copy {
    text-align: center;
  }

  .hero-media {
    order: -1;
  }

  .home-page .about-media {
    order: -1;
  }

  .hero-copy h1 {
    margin-right: auto;
    margin-left: auto;
  }

  .hero-copy .price-pill {
    justify-content: center;
    text-align: center;
  }

  .hero .hero-badges {
    justify-content: center;
    margin-right: auto;
    margin-left: auto;
  }

  .home-page .section-heading,
  .home-page .about-section .section-copy,
  .home-page .service-card div,
  .home-page .difference-grid article,
  .home-page .content-head,
  .home-page .article-grid article {
    text-align: center;
  }

  .home-page .section-heading,
  .home-page .content-head {
    margin-right: auto;
    margin-left: auto;
  }

  .home-page .difference-grid .line-icon {
    margin-right: auto;
    margin-left: auto;
  }

  .home-page .blog-head-row {
    align-items: center !important;
  }

  .home-page .blog-top-button {
    align-self: center;
  }

  .home-page .article-grid article > a {
    align-self: center;
    margin-right: auto;
    margin-left: auto;
  }

  /* 5. Google Ads page */

  .google-ads-page .urgency-media {
    order: -1;
  }

  .google-ads-page .zig-image-wrap img,
  .google-ads-page .urgency-image-wrap img {
    display: block;
    height: 340px;
    margin-top: 0;
  }

  .keyword-visual,
  .site-map-visual,
  .speed-visual { min-height: 330px; }

  .sites-seo-page .speed-media {
    order: -1;
  }

  .business-image-wrap,
  .double-result-visual,
  .reviews-visual { min-height: 340px; }

  .google-business-page .business-local-media {
    order: -1;
  }

  .diferenciais-page .mobile-media-first {
    order: -1;
  }

  .business-image-wrap img { height: 340px; }
}

@media (max-width: 860px) {
  /* 2. Shared layout and components */

  .container {
    --bs-gutter-x: 28px;
  }

  .header-inner {
    min-height: 68px;
  }

  .menu-toggle {
    display: flex;
  }

  .site-nav {
    position: absolute;
    top: 68px;
    right: 0;
    left: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 18px 22px 24px;
    border-top: 1px solid var(--line);
    background: var(--white);
    box-shadow: 0 20px 35px rgba(8, 15, 24, .12);
  }

  .site-nav.open {
    display: flex;
  }

  .site-nav a {
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
  }

  .nav-dropdown {
    display: block;
  }

  .nav-dropdown-panel {
    position: static;
    display: block;
    min-width: 0;
    padding: 0 0 0 14px;
    border: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .nav-dropdown-panel a {
    color: #69737d;
    font-size: 13px;
  }

  .dark-section,
  .about-section,
  .differentials,
  .content-section {
    padding: 68px 0;
  }

  .footer-bottom {
    flex-direction: column;
  }

  /* 3. Home page */

  .hero-grid {
    --bs-gutter-x: 38px;
    padding: 54px 0;
  }

  .video-card {
    min-height: 220px;
  }

  .service-card img {
    height: 210px;
  }

  .blog-head-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .blog-top-button {
    margin-bottom: 0;
  }

  .article-grid article {
    min-height: 0;
  }

  .article-thumb {
    height: 215px;
    flex-basis: 215px;
  }

  .service-card {
    min-height: 390px;
  }

  .service-card p {
    max-height: 160px;
    margin: 13px 0 20px;
    opacity: 1;
  }

  .video-card.design-video-card {
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 768px) {
  /* 2. Shared layout and components */

  .google-ads-page .hero-section,
  .google-ads-page .zig-section,
  .google-ads-page .urgency-section,
  .google-ads-page .purpose-section,
  .sites-seo-page .sites-hero,
  .sites-seo-page .seo-feature,
  .sites-seo-page .speed-section,
  .sites-seo-page .sites-cta,
  .google-business-page .business-hero,
  .google-business-page .business-feature,
  .google-business-page .business-cta {
    padding: 56px 0;
  }

}

@media (max-width: 560px) {
  /* 2. Shared layout and components */

  .brand {
    font-size: 24px;
  }

  .brand i {
    width: 20px;
    height: 20px;
  }

  .brand i::before,
  .brand i::after {
    width: 20px;
    height: 20px;
  }

  .brand i::before {
    left: -10px;
  }

  .brand i::after {
    top: -10px;
  }

  .contact-page .contact-copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    text-align: center !important;
  }

  .contact-page .contact-copy h1 {
    max-width: 340px;
    font-size: 32px;
    text-align: center !important;
  }

  .contact-page .contact-copy > p {
    max-width: 340px;
    font-size: 15px;
    text-align: center !important;
  }

  .contact-page :where(.contact-benefits, .contact-assurance) {
    width: 100%;
    text-align: center !important;
  }

  .contact-page .contact-benefits article {
    max-width: 330px;
  }

  .contact-page .contact-benefits h2 {
    font-size: 15px;
  }

  .contact-page .contact-benefits p {
    max-width: 310px;
    font-size: 12px;
  }

  /* 3. Home page */

  .hero-copy h1 {
    font-size: 31px;
  }

  .price-pill {
    display: flex;
  }

  .video-card p {
    right: 18px;
    bottom: 18px;
  }

  .design-video-card .video-tag {
    top: 16px;
    right: 16px;
    font-size: 10px;
    padding: 7px 12px;
  }

  .design-video-card .play-btn {
    width: 68px;
    height: 68px;
  }

  .design-video-card .video-caption {
    left: 18px;
    right: 18px;
    bottom: 18px;
    font-size: 12px;
  }

  .google-ads-page .hero-section h1,
  .sites-seo-page .sites-hero h1,
  .google-business-page .business-hero h1 { font-size: 31px; }
  .sites-seo-page .sites-hero .keep-together { white-space: normal; }
  .seo-stats { margin-top: 34px; }
  .seo-stat-card { min-height: 0; }
  .site-map-visual { padding: 28px 14px; }
  .site-map-pages { grid-template-columns: repeat(2, 1fr); }
  .site-map-pages::before,
  .site-map-pages div::before { display: none; }
  .site-map-pages div { padding-top: 17px; }
  .speed-chip { top: 24px; right: 18px; }

  .double-result-visual,
  .reviews-visual { padding: 20px 16px; }
  .secondary-review { margin-left: 16px; }
  .double-badge { right: 14px; bottom: 12px; }
}
