/* =======================================================
   DUB FACTORY STUDIOS
   MOBILE / RESPONSIVE OVERRIDES
======================================================= */

/* =======================================================
   LARGE TABLETS
======================================================= */

@media screen and (max-width: 1200px) {

  .dfs-pricing-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .dfs-card-grid {
    gap: 24px;
  }
}

/* =======================================================
   TABLETS / SMALL LAPTOPS
======================================================= */

@media screen and (max-width: 992px) {

  /* NAV */

  .fh5co-nav ul li a {
    padding: 12px 7px;
    font-size: 12px;
  }

  .fh5co-nav ul li.auth-link > a,
  .fh5co-nav ul li.auth-link > a.dfs-nav-pill {

    min-width: 70px;

    padding: 0 12px;

    font-size: 9px;
  }

  /* HERO */

  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    font-size: 54px;
  }

  /* SECTION HEADINGS */

  .dfs-section-heading h2 {
    font-size: 42px;
  }

  /* CARDS */

  .dfs-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* ACCOUNT */

  .dfs-account-card-grid {
    grid-template-columns: 1fr;
  }
}

/* =======================================================
   MOBILE
======================================================= */

@media screen and (max-width: 768px) {

  /* NAV */

  .fh5co-nav {
    padding: 18px 0;
  }

  .fh5co-nav .nav-row {
    justify-content: space-between;
  }

  .fh5co-nav .menu-1 {
    display: none !important;
  }

  #fh5co-logo img {
    max-width: 175px;
  }

  .fh5co-nav-toggle {
    display: block;
  }

  #fh5co-offcanvas {
    display: block;
  }

  /* HERO */

  .dfs-hero,
  #fh5co-header.fh5co-cover {
    min-height: auto;
  }

  .dfs-hero {
    padding: 130px 0 90px;
  }

  .dfs-hero:before,
  .fh5co-cover .overlay {
    background: rgba(0,0,0,0.65);
  }

  .dfs-hero-content,
  .fh5co-cover .display-tc {
    padding: 80px 24px;
  }

  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    font-size: 42px;
  }

  .dfs-hero p,
  #fh5co-header .display-tc h2 {
    font-size: 18px;
    line-height: 1.8;
  }

  .dfs-kicker {
    letter-spacing: 3px;
    font-size: 11px;
  }

  /* INTERIOR HERO */

  .dfs-page-hero {
    padding: 70px 20px 55px;
  }

  .dfs-page-hero h1 {
    font-size: 38px;
  }

  /* SECTIONS */

  .dfs-section {
    padding: 70px 20px;
  }

  .dfs-section-heading {
    margin-bottom: 46px;
  }

  .dfs-section-heading h2 {
    font-size: 34px;
  }

  .dfs-section-heading p {
    font-size: 16px;
    line-height: 1.8;
  }

  /* CARDS */

  .dfs-card-grid,
  .dfs-pricing-grid {
    grid-template-columns: 1fr;
  }

  .dfs-card,
  .dfs-price-card {
    padding: 30px 24px;
  }

  /* BUTTONS */

  .btn,
  .dfs-btn,
  .btn-primary,
  .btn-outline,
  .dfs-btn-primary,
  .dfs-btn-outline {

    width: 100%;

    margin-top: 12px;
    margin-left: 0 !important;

    text-align: center;
  }

  /* FORMS */

  .dfs-contact-page {
    padding: 70px 20px;
  }

  .dfs-contact-wrap h1 {
    font-size: 38px;
  }

  .dfs-contact-form {

    grid-template-columns: 1fr;

    padding: 30px 24px;
  }

  .dfs-contact-submit {
    width: 100%;
  }

  .dfs-inline-fields {
    flex-direction: column;
    align-items: stretch;
  }

  /* ACCOUNT */

  .dfs-account-panel {
    padding: 30px 24px;
  }

  .dfs-profile-row {

    grid-template-columns: 1fr;

    gap: 10px;

    padding: 16px 0;
  }

  .dfs-small-btn {
    width: 100%;
  }

  /* LEGAL */

  .dfs-legal-page,
  .tdf-legal-page {
    padding: 70px 20px;
  }

  .dfs-legal-page h1,
  .tdf-legal-page h1 {
    font-size: 38px;
  }

  .dfs-legal-content,
  .tdf-legal-content {
    padding: 32px 24px;
  }

  .dfs-legal-content h2,
  .tdf-legal-content h2 {
    font-size: 22px;
  }

  .dfs-legal-content p,
  .dfs-legal-content li,
  .tdf-legal-content p,
  .tdf-legal-content li {
    font-size: 15px;
    line-height: 1.8;
  }

  /* FOOTER */

  #fh5co-footer {
    padding: 48px 20px 32px;
  }

  .fh5co-social-icons {
    flex-wrap: wrap;
  }

  .dfs-footer-links a,
  .tdf-footer-links a {
    display: inline-block;
    margin: 6px 8px;
  }

  .dfs-footer-links span,
  .tdf-footer-links span {
    display: none;
  }
}

/* =======================================================
   SMALL MOBILE
======================================================= */

@media screen and (max-width: 480px) {

  /* HERO */

  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    font-size: 34px;
  }

  .dfs-hero p,
  #fh5co-header .display-tc h2 {
    font-size: 16px;
  }

  /* SECTION HEADINGS */

  .dfs-section-heading h2 {
    font-size: 28px;
  }

  /* PAGE HERO */

  .dfs-page-hero h1 {
    font-size: 32px;
  }

  /* PRICING */

  .dfs-price {
    font-size: 34px;
  }

  /* BUTTONS */

  .btn,
  .dfs-btn,
  .btn-primary,
  .btn-outline,
  .dfs-btn-primary,
  .dfs-btn-outline {
    padding: 15px 24px;
    font-size: 13px;
  }

  /* FORMS */

  .dfs-contact-form,
  .dfs-account-panel,
  .dfs-legal-content,
  .tdf-legal-content {
    padding: 24px 20px;
  }
}
/* =======================================================
   MOBILE HARDENING PASS
   Shared safeguards for current DFS pages and components.
======================================================= */

@media screen and (max-width: 768px) {
  html,
  body,
  #page {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  .container {
    width: 100%;
    max-width: 100%;
  }

  img,
  video,
  canvas,
  svg,
  iframe {
    max-width: 100%;
  }

  img,
  video,
  canvas,
  svg {
    height: auto;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  a,
  span,
  li,
  td,
  th {
    overflow-wrap: anywhere;
  }

  /* Header / off-canvas navigation */
  #fh5co-logo img {
    max-width: 165px;
  }

  .fh5co-nav-toggle {
    top: 17px;
    right: 14px;
  }

  #fh5co-offcanvas {
    width: min(86vw, 320px);
    padding: 72px 28px 36px;
    transform: translateX(100%);
  }

  .offcanvas #fh5co-offcanvas {
    transform: translateX(0);
  }

  #fh5co-offcanvas ul li a {
    display: block;
    padding: 4px 0;
    line-height: 1.45;
  }

  /* Hero sizing: avoid double vertical padding on phones */
  .dfs-hero {
    padding: 0;
  }

  .dfs-hero-content,
  .fh5co-cover .display-tc {
    width: 100%;
    max-width: 100%;
    padding: 68px 20px;
  }

  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    line-height: 1.05;
  }

  .dfs-kicker {
    max-width: 100%;
    line-height: 1.55;
  }

  /* Touch-friendly calls to action */
  .btn,
  .dfs-btn,
  .btn-primary,
  .btn-outline,
  .dfs-btn-primary,
  .dfs-btn-outline {
    min-height: 48px;
    max-width: 100%;
    white-space: normal;
    line-height: 1.35;
  }

  /* Prevent iOS focus zoom and clipped form controls */
  .form-control,
  input,
  select,
  textarea {
    max-width: 100%;
    font-size: 16px;
  }

  /* Account/customer record tables remain usable by horizontal scroll */
  .admin-work-order-table-wrap,
  .dfs-account-blueprints .admin-work-order-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .dfs-account-blueprints .admin-work-order-table {
    min-width: 680px;
  }

  /* Shared footer spacing and wrapping */
  #fh5co-footer {
    padding: 56px 20px 36px;
  }

  .dfs-footer-tagline,
  .tdf-footer-tagline {
    margin-bottom: 26px;
    line-height: 1.65;
  }

  .fh5co-social-icons {
    gap: 14px;
    margin: 0 auto 38px;
  }

  .dfs-footer-links,
  .tdf-footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px 16px;
    margin-top: 0;
    margin-bottom: 24px;
    line-height: 1.4;
  }

  .dfs-footer-links a,
  .tdf-footer-links a {
    margin: 0;
  }

  .dfs-footer-links span,
  .tdf-footer-links span {
    display: none;
  }

  .dfs-footer-copy,
  .tdf-footer-copy {
    line-height: 1.55;
  }

  /* Keep floating return-to-top control away from screen edges */
  .gototop {
    right: 14px;
    bottom: 14px;
  }
}

@media screen and (max-width: 480px) {
  #fh5co-logo img {
    max-width: 145px;
  }

  .fh5co-nav {
    padding: 14px 0;
  }

  .fh5co-nav-toggle {
    top: 12px;
    right: 10px;
  }

  .dfs-hero-content,
  .fh5co-cover .display-tc {
    padding: 54px 18px;
  }

  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    font-size: 32px;
  }

  .dfs-section {
    padding: 56px 16px;
  }

  .dfs-section-heading {
    margin-bottom: 36px;
  }

  .dfs-section-heading h2 {
    font-size: 27px;
    line-height: 1.12;
  }

  .dfs-page-hero {
    padding: 56px 16px 44px;
  }

  .dfs-page-hero h1,
  .dfs-contact-wrap h1,
  .dfs-legal-page h1,
  .tdf-legal-page h1 {
    font-size: 30px;
  }

  .dfs-card,
  .dfs-price-card,
  .dfs-contact-form,
  .dfs-account-panel,
  .dfs-legal-content,
  .tdf-legal-content {
    padding-left: 18px;
    padding-right: 18px;
  }

  #fh5co-footer {
    padding: 48px 16px 30px;
  }

  .fh5co-social-icons {
    margin-bottom: 32px;
  }

  .dfs-footer-links,
  .tdf-footer-links {
    gap: 10px 14px;
    margin-bottom: 22px;
    font-size: 11px;
  }
}
