/* Shared structural contracts for cloned product and company pages. */

main:has([data-qa-component="domain-hero-search"]),
main:has([data-qa-component="email-hero-intro"]),
main:has([data-qa-component="web-hero-intro"]),
main:has([data-qa-component="shopify-email-hero-intro"]),
main:has([data-qa-component="vps-hero"]),
main:has([data-qa-component="aws-hero"]) {
  --page-content-max: 1300px;
  --page-content-width: min(90vw, 100%);
}

main:has([data-qa-component="m365-hero"]),
main:has([data-qa-component="gcp-hero"]),
main:has([data-qa-component="do-hero"]),
main:has([data-qa-component="linode-hero"]),
main:has([data-qa-component="ssl-hero"]),
main:has([data-qa-component="backup-hero"]),
main:has([data-qa-component="about-mission"]),
main:has([data-qa-component="why-hero"]) {
  --page-content-max: 1296px;
  --page-content-width: min(90vw, 100%);
}

main:has([data-qa-component="generator-title"]),
main:has([data-qa-component="privacy-header"]),
main:has([data-qa-component="terms-header"]),
main:has([data-qa-component="affiliate-hero"]) {
  --page-content-max: 1140px;
  --page-content-width: min(calc(100vw - 50px), 100%);
}

/* FAQ accordions must participate in normal document flow. */
main [data-qa-component$="-faq"] {
  height: auto !important;
  overflow: visible !important;
}

main [data-qa-component$="-faq"] :is([class*="faq-inner"], [class*="faq-list"]) {
  height: auto !important;
  overflow: visible !important;
}

/* Domain registration */
:is(
  [data-qa-component="domain-price-table"] > .wrap,
  [data-qa-component="domain-included-features"] .dr-included-wrap,
  [data-qa-component="domain-faq"] > .wrap,
  [data-qa-component="domain-why-register"] .dr-live-grid,
  [data-qa-component="domain-registered-domain-uses"] .dr-live-grid,
  [data-qa-component="domain-registration-flow"] .dr-live-grid,
  [data-qa-component="domain-advice-support"] .dr-live-grid
) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* Email hosting and its Shopify variant */
:is(
  [data-qa-component="email-domain-identity-note"] .wrap,
  [data-qa-component="email-pricing-plans"] .eh-plan-grid,
  [data-qa-component="email-bulk-mailboxes-cta"] .eh-bulk-panel,
  [data-qa-component="email-testimonials"] .eh-testimonial-inner,
  [data-qa-component="shopify-email-pricing-plans"] .eh-plan-grid,
  [data-qa-component="shopify-email-bulk-mailboxes-cta"] .eh-bulk-panel,
  [data-qa-component="shopify-email-testimonials"] .shopify-testimonials-inner
) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* Web hosting */
:is(
  [data-qa-component="web-plan-comparison"],
  [data-qa-component="web-pricing-plans"] .wh-plan-grid,
  [data-qa-component="web-switch-paths"] .wh-switch-grid,
  [data-qa-component="web-features"] .wh-wide,
  [data-qa-component="web-testimonials"] .eh-testimonial-inner,
  [data-qa-component="web-clientele"] h2,
  [data-qa-component="web-clientele"] .wh-client-grid,
  [data-qa-component="web-final-cta"] .wh-final-inner
) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

[data-qa-component="web-clientele"] .wh-client-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* Domain generator */
[data-qa-component="generator-form"] .generator-inner {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* Microsoft 365 */
:is(
  [data-qa-component="m365-hero"],
  [data-qa-component="m365-value-comparison"],
  [data-qa-component="m365-service-benefits"],
  [data-qa-component="m365-cost-comparison"],
  [data-qa-component="m365-plans"],
  [data-qa-component="m365-archive"],
  [data-qa-component="m365-product-features"],
  [data-qa-component="m365-office-benefits"],
  [data-qa-component="m365-cldy-benefits"],
  [data-qa-component="m365-testimonials"],
  [data-qa-component="m365-faq"]
) > .m365-wrap,
[data-qa-component="m365-final-cta"] .dr-final-container {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* VPS: the closing color bands are intentionally full bleed. */
[data-qa-component="vps-use-cases"] > .vps-wrap {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* Managed cloud hosting families */
:is(
  [data-qa-component="aws-ec2-intro"],
  [data-qa-component="aws-lightsail-intro"],
  [data-qa-component="aws-manage-intro"]
) > div {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

:is(.gcp-managed-hosting-page .gcp-wrap, .digitalocean-managed-hosting-page .do-wrap, .linode-managed-hosting-page .linode-wrap) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

:is(
  [data-qa-component="gcp-c2-intro"],
  [data-qa-component="do-hosting-intro"],
  [data-qa-component="linode-hosting-intro"]
) > h2,
:is(
  [data-qa-component="gcp-manage-intro"],
  [data-qa-component="do-manage-intro"],
  [data-qa-component="linode-manage-intro"]
) > div {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* SSL, Backup & Restore, About Us */
:is(
  .ssl-certificates-page .ssl-hero-inner,
  .ssl-certificates-page .ssl-pricing-desktop,
  .ssl-certificates-page .ssl-narrow,
  .ssl-certificates-page .ssl-wide,
  .ssl-certificates-page .ssl-closing-inner,
  .backup-restore-page .backup-hero-inner,
  .backup-restore-page .backup-safety-grid,
  .backup-restore-page .backup-retention-inner,
  .backup-restore-page .backup-features-inner,
  .backup-restore-page .backup-faq-inner,
  .about-us-page .about-mission-inner,
  .about-us-page .about-leadership-inner,
  .about-us-page .about-values-inner,
  .about-us-page .about-principles-inner,
  .about-us-page .about-clientele-inner
) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* Why Us */
:is(
  .why-us-page .why-hero-inner,
  .why-us-page .why-story-inner,
  .why-us-page .why-partner-inner,
  .why-us-page .why-clientele-inner,
  .why-us-page .why-testimonials-inner,
  .why-us-page .why-contact-inner,
  .why-us-page .why-hosting-benefits
) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

.why-us-page .why-hosting-heading > :is(h2, p) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

.why-us-page .why-hosting-benefits {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* Legal pages */
:is(
  [data-qa-component="privacy-document"] .privacy-content,
  [data-qa-component="terms-document"] .terms-content
) {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

/* Affiliate page */
.affiliate-page-content [data-qa-component^="affiliate-"] > .elementor-container {
  width: var(--page-content-width) !important;
  max-width: var(--page-content-max) !important;
  margin-inline: auto !important;
}

@media (max-width: 640px) {
  main:has([data-qa-component="generator-title"]) {
    --page-content-width: min(calc(100vw - 20px), 100%);
  }

  main:has([data-qa-component="privacy-header"]),
  main:has([data-qa-component="terms-header"]) {
    --page-content-width: min(calc(100vw - 50px), 100%);
  }

  main:has([data-qa-component="affiliate-hero"]) {
    --page-content-width: min(90vw, 100%);
  }

  :is(
    [data-qa-component="domain-price-table"],
    [data-qa-component="domain-why-register"],
    [data-qa-component="domain-registered-domain-uses"],
    [data-qa-component="domain-registration-flow"],
    [data-qa-component="domain-advice-support"],
    [data-qa-component="domain-included-features"],
    [data-qa-component="domain-faq"],
    [data-qa-component="email-pricing-plans"],
    [data-qa-component="email-bulk-mailboxes-cta"],
    [data-qa-component="email-testimonials"],
    [data-qa-component="web-pricing-plans"],
    [data-qa-component="web-switch-paths"],
    [data-qa-component="web-features"],
    [data-qa-component="web-testimonials"],
    [data-qa-component="shopify-email-pricing-plans"],
    [data-qa-component="shopify-email-bulk-mailboxes-cta"],
    [data-qa-component="shopify-email-testimonials"],
    [data-qa-component="gcp-c2-intro"],
    [data-qa-component="gcp-c2-plans"],
    [data-qa-component="gcp-management-benefits"],
    [data-qa-component="do-hosting-intro"],
    [data-qa-component="do-hosting-plans"],
    [data-qa-component="do-management-benefits"],
    [data-qa-component="linode-hosting-intro"],
    [data-qa-component="linode-hosting-plans"],
    [data-qa-component="linode-management-benefits"],
    [data-qa-component="backup-retention-workflow"],
    [data-qa-component="backup-features"],
    .affiliate-page-content [data-qa-component^="affiliate-"]
  ) {
    padding-inline: 19.5px !important;
  }

  [data-qa-component="web-clientele"] .wh-client-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .why-us-page .why-hosting-benefits {
    display: block !important;
  }

  .why-us-page .why-feature-card {
    width: 100% !important;
    margin-inline: 0 !important;
  }

  .why-us-page :is(.why-support-grid, .why-payment-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .why-us-page :is(.why-support-card, .why-payment-card) {
    width: calc(100% - 20px) !important;
  }
}
