/*
 * BFTPANEL responsive usability layer — v2.0.17
 * Desktop source-of-truth remains site.css/pages.css. This file only changes
 * tablet/phone presentation and is loaded last.
 */

/* New responsive-only controls are invisible on desktop. */
.bft-mobile-footer { display: none; }
.site-header .submenu-toggle { display: none; }

@media (max-width: 1100px) {
  /* Header: keep the desktop visual language but make touch navigation usable. */
  .header-inner { position: relative; }
  .header-controls { margin-left: auto; gap: 10px; flex: 0 0 auto; }
  .site-header .submenu-toggle {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #111;
  }
  .site-header .submenu-toggle span {
    display: block;
    font-size: 22px;
    line-height: 1;
    transition: transform .2s ease;
  }
  .site-header .nav-group.open > .submenu-toggle span { transform: rotate(180deg); }
  .site-header .nav-group > a { flex: 1 1 auto; min-width: 0; }
  .site-header #site-nav .submenu a { min-height: 44px; display: flex; align-items: center; }

  /* Tablet grids: reduce density before phone stacking. */
  .technical-product-cards,
  .download-cards,
  .resource-projects,
  .project-grid,
  .feature-grid,
  .finish-cards,
  .core-cards,
  .comparison-cards,
  .machine-made-systems__grid,
  .machine-made-standardized__cards,
  .machine-made-project-supply__cards,
  .machine-made-why__features,
  .order-grid,
  .ms-build-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Forms should never preserve desktop split widths on touch devices. */
  .product-form .split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 24px !important;
  }
  .product-form-box { min-width: 0; }

  /* Tables stay readable by scrolling instead of shrinking text into illegibility. */
  .machine-made-panel-construction-specs__table-wrap,
  .machine-made-comparison__table-scroll,
  .machine-made-core-choice__table-scroll,
  .ms-tech-table {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }
}

@media (max-width: 767px) {
  :root { --bft-mobile-footer-height: 68px; }

  html {
    max-width: 100%;
    scroll-padding-top: 78px;
    scroll-padding-bottom: calc(var(--bft-mobile-footer-height) + 12px);
  }
  body {
    max-width: 100%;
    overflow-x: clip;
    padding-bottom: calc(var(--bft-mobile-footer-height) + env(safe-area-inset-bottom, 0px));
  }
  body.mobile-nav-open,
  body.modal-open { overflow: hidden; }

  main,
  main > section,
  .wrap,
  .grid,
  .split,
  .swiper,
  .swiper-wrapper,
  .swiper-slide { min-width: 0; }

  .wrap {
    width: calc(100% - 32px) !important;
    max-width: none !important;
  }

  /* Mobile header: logo + language icon + menu. Quote remains available from CTA/contact. */
  .site-header { z-index: 60; }
  .header-inner {
    min-height: 68px !important;
    gap: 8px !important;
  }
  .brand {
    height: 38px !important;
    max-width: min(48vw, 172px);
  }
  .brand img { max-width: 100% !important; }
  .header-controls { gap: 8px; }
  .header-controls > .button { display: none !important; }
  .header-language { padding: 8px 4px; }
  .header-language > img { width: 21px; margin-right: 0; }
  .header-language-text { display: none; }
  .menu-toggle {
    width: 44px;
    height: 44px;
    margin-left: 0 !important;
    flex: 0 0 44px;
  }
  .header-inner nav {
    position: fixed !important;
    top: 68px !important;
    right: 0 !important;
    bottom: calc(var(--bft-mobile-footer-height) + env(safe-area-inset-bottom, 0px)) !important;
    left: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    padding: 10px 20px 28px !important;
    border-top: 1px solid #eee;
    box-shadow: 0 10px 30px rgba(0,0,0,.12) !important;
    overscroll-behavior: contain;
  }
  .header-inner nav > a,
  .nav-group > a {
    min-height: 48px;
    padding: 13px 0 !important;
    display: flex !important;
    align-items: center;
    font-size: 16px !important;
  }
  .nav-group {
    display: flex !important;
    align-items: center;
    border-bottom: 1px solid #eee;
  }
  .header-inner nav > a { border-bottom: 1px solid #eee; }
  .nav-group .submenu {
    flex-basis: 100%;
    padding: 0 0 8px 14px !important;
  }
  .nav-group .submenu a {
    min-height: 44px;
    padding: 10px 0 !important;
    font-size: 14px !important;
    color: #444;
  }

  /* Typography/spacing: keep line lengths and touch density comfortable. */
  h1 { font-size: clamp(30px, 9vw, 38px) !important; line-height: 1.2; overflow-wrap: anywhere; }
  h2 { font-size: clamp(25px, 7vw, 31px) !important; line-height: 1.25; overflow-wrap: anywhere; }
  h3 { overflow-wrap: anywhere; }
  p, li { overflow-wrap: anywhere; }
  .band { padding-top: 46px !important; padding-bottom: 46px !important; }
  .section-heading { margin-bottom: 24px !important; }
  .section-heading p { line-height: 1.7; }

  /* Buttons and interactive controls: 44px minimum touch area. */
  button,
  .button,
  .links,
  .download-card,
  .filter-bar button,
  [role="tab"],
  summary {
    min-height: 44px;
  }
  .button,
  .links { white-space: normal; text-align: center; }

  /* Core grids/lists. Phone layout prefers one clear column; icon directories stay 2-up. */
  .cols-2,
  .cols-3,
  .cols-4,
  .technical-product-cards,
  .download-cards,
  .support-faq,
  .resource-projects,
  .project-grid,
  .feature-grid,
  .finish-cards,
  .core-cards,
  .comparison-cards,
  .machine-made-systems__grid,
  .machine-made-standardized__cards,
  .machine-made-project-supply__cards,
  .machine-made-why__features,
  .order-grid,
  .ms-build-grid,
  .contact-layout,
  .intro-columns,
  .split {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .building-types { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .building-types a { min-height: 118px !important; padding: 14px 10px !important; }
  .building-types img,
  .building-types svg { max-width: 52px; max-height: 52px; }
  .grid { gap: 18px !important; }

  /* Cards: no hover-only affordances; everything usable by a tap. */
  .card-copy,
  .download-card,
  .technical-product-cards article,
  .project-grids,
  .blog-card,
  .resource-projects article { min-width: 0; }
  .card-copy { padding: 18px !important; }
  .technical-product-cards article { display: block !important; }
  .technical-product-cards article > img,
  .technical-product-cards img {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: 327 / 300;
    object-fit: cover;
  }
  .technical-product-cards article > div { padding: 20px !important; }
  .support-product .btn-groups { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; }
  .support-product .btn-groups .button { width: 100% !important; justify-content: center !important; }
  .download-cards .download-card { width: 100%; padding: 16px !important; }

  /* Forms — especially Support/Product CF7. Prevent desktop two-column squeeze. */
  .product-form .split {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
  }
  .product-form .section-heading p {
    margin-top: 14px !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
  }
  .product-form .link-group {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 24px !important;
  }
  .product-form .link-group .links {
    width: 100% !important;
    min-height: 48px;
    padding: 11px 14px !important;
    font-size: 16px !important;
  }
  .product-form-box {
    width: 100%;
    padding: 24px 16px !important;
    border-radius: 8px !important;
  }
  .product-form-box .logos { margin-bottom: 22px !important; }
  .product-form-box .logos img { width: min(150px, 55vw); }
  .product-form-box .flexs,
  .product-form-box.bft-cf7-form .wpcf7-form > .flexs {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    margin: 0 !important;
  }
  .product-form-box .items {
    width: 100% !important;
    padding: 0 !important;
    min-width: 0;
  }
  .product-form-box .items select,
  .product-form-box .items input,
  .product-form-box.bft-cf7-form .items select,
  .product-form-box.bft-cf7-form .items input:not([type="submit"]),
  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 input[type="url"],
  .wpcf7 input[type="number"],
  .wpcf7 select,
  .wpcf7 textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px !important;
    height: auto;
    padding: 11px 12px !important;
    font-size: 16px !important; /* avoid iOS focus zoom */
    line-height: 1.35;
    box-sizing: border-box;
  }
  .wpcf7 textarea { min-height: 120px !important; resize: vertical; }
  .wpcf7 input[type="checkbox"],
  .wpcf7 input[type="radio"] { width: 20px; height: 20px; flex: 0 0 20px; }
  .wpcf7-list-item { margin: 0 0 8px !important; }
  .wpcf7-list-item label { min-height: 32px; align-items: flex-start !important; }
  .product-form-box.bft-cf7-form .bft-cf7-submit-row input.wpcf7-submit.button,
  .wyn-contact .project-inquiry input.wpcf7-submit.button,
  .enquiry-form.bft-cf7-form input.wpcf7-submit.button,
  .wpcf7 input[type="submit"] {
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    font-size: 16px !important;
  }
  .wyn-contact .project-inquiry .choice-grid > .wpcf7-form-control-wrap > .wpcf7-form-control,
  .wyn-contact .project-inquiry .form-grid,
  .enquiry-form.bft-cf7-form .form-grid,
  .project-inquiry .form-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .project-inquiry fieldset { margin: 18px 0 !important; padding-top: 14px !important; }
  .project-inquiry .file-upload { min-height: 56px; display: grid; place-items: center; }
  .wpcf7-not-valid-tip { font-size: 13px; line-height: 1.4; }
  .wpcf7-response-output { margin: 14px 0 0 !important; }

  /* CTA rows and inquiry blocks become one clear reading order. */
  .product-cta .flexs,
  .product-cta .rights {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  .product-cta .section-heading,
  .product-cta .rights {
    width: 100% !important;
    padding-left: 0 !important;
  }
  .product-cta .rights .button { width: 100% !important; min-height: 48px; }

  /* FAQ/accordion: readable tap rows with no tiny hit targets. */
  .support-faq { display: block !important; }
  .support-faq .faq-list + .faq-list { margin-top: 0 !important; }
  .support-faq details { margin-bottom: 10px; }
  .support-faq summary,
  .faq-q,
  .product-faq-trigger,
  .mm-res-q {
    min-height: 50px;
    padding-top: 13px !important;
    padding-bottom: 13px !important;
    padding-right: 46px !important;
    line-height: 1.45 !important;
  }
  .support-faq details p { padding: 0 16px 16px !important; line-height: 1.7 !important; }
  .support-faq-actions { margin-top: 20px !important; }
  .support-faq-actions .button { width: 100%; }

  /* Tabs/filter bars: horizontal swipe rather than wrapped tiny labels. */
  [role="tablist"],
  .project-tabs [role="tablist"],
  .filter-bar,
  .directory-toolbar {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  .project-tabs [role="tablist"] {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    padding-bottom: 6px;
  }
  .project-tabs [role="tab"] {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 10px 14px !important;
    white-space: nowrap;
  }

  /* Swipers/carousels: touch-first. JS breakpoints control slidesPerView. */
  .home-project-swiper,
  .swiper { max-width: 100%; touch-action: pan-y; }
  .swiper-slide { height: auto; }
  .home-project-arrow {
    top: 38% !important;
    padding: 0 4px;
  }
  .mod-prev,
  .mod-next {
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.16);
  }

  /* Tables: preserve data hierarchy with native horizontal scroll. */
  .machine-made-panel-construction-specs__table-wrap,
  .machine-made-comparison__table-scroll,
  .machine-made-core-choice__table-scroll,
  .ms-tech-table {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }
  .machine-made-panel-construction-specs__table,
  .machine-made-comparison__table,
  .machine-made-core-choice__table,
  .ms-tech-table table {
    min-width: 640px !important;
    width: max-content;
    max-width: none !important;
  }
  table th,
  table td { padding: 10px 12px !important; line-height: 1.45; }

  /* Media/embedded content. */
  iframe,
  video,
  embed,
  object { max-width: 100%; }
  iframe[src*="youtube"],
  .home-video-dialog__player { width: 100% !important; aspect-ratio: 16 / 9; height: auto !important; }
  figure { max-width: 100%; }

  /* Dialogs fit the dynamic viewport and keep controls reachable. */
  dialog {
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    padding: 20px !important;
    margin: auto;
  }
  .dialog-close { min-width: 44px; min-height: 44px; }

  /* Desktop footer is replaced on phones with four common actions. */
  .site-footer { display: none !important; }
  .bft-mobile-footer {
    position: fixed;
    z-index: 80;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: var(--bft-mobile-footer-height);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    border-top: 1px solid #e5e5e5;
    background: rgba(255,255,255,.98);
    box-shadow: 0 -4px 20px rgba(0,0,0,.08);
    backdrop-filter: blur(12px);
  }
  .bft-mobile-footer__item {
    display: flex;
    min-width: 0;
    min-height: var(--bft-mobile-footer-height);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 7px 4px 6px;
    color: #222;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }
  .bft-mobile-footer__item + .bft-mobile-footer__item { border-left: 1px solid #f1f1f1; }
  .bft-mobile-footer__item svg { width: 24px; height: 24px; flex: 0 0 24px; }
  .bft-mobile-footer__item span {
    max-width: 100%;
    overflow: hidden;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .bft-mobile-footer__item:active,
  .bft-mobile-footer__item:focus-visible { color: var(--main-color, #bd0d16); background: #faf3f3; }

  /* Logged-in mobile admin bar should not make the menu unusable. */
  body.admin-bar .header-inner nav { top: calc(68px + 46px) !important; }
}

@media (max-width: 480px) {
  .wrap { width: calc(100% - 28px) !important; }
  .building-types { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .building-types a { min-height: 108px !important; }
  .project-tabs [role="tab"] { font-size: 13px !important; }
  .home-project-arrow { top: 34% !important; }
}


/* v2.0.16 — Contact page phone layout.
 * The desktop contact page intentionally keeps the original static-page geometry.
 * On phones the desktop two-column/timeline widths must be replaced, otherwise
 * the 250px step rail + 37% contact sidebar squeeze real content into a sliver. */
@media (max-width: 900px) {
  .wyn-contact .contact-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
    align-items: stretch !important;
  }
  .wyn-contact .contact-layout .inquiry-card,
  .wyn-contact .contact-layout .contact-methods {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 767px) {
  /* Contact section cards: full-width, readable and independent of desktop widths. */
  .wyn-contact { overflow: hidden; }
  .wyn-contact .wrap { min-width: 0; }
  .wyn-contact .contact-layout { gap: 20px !important; }
  .wyn-contact .contact-layout .inquiry-card,
  .wyn-contact .contact-layout .contact-methods {
    box-sizing: border-box !important;
    padding: 22px 16px !important;
    border-radius: 8px !important;
    overflow: hidden;
  }
  .wyn-contact .contact-layout .inquiry-card h2,
  .wyn-contact .contact-layout .contact-methods h2 {
    margin: 0 0 20px !important;
    font-size: clamp(24px, 7vw, 30px) !important;
    line-height: 1.2 !important;
    text-align: left !important;
  }
  .wyn-contact .inquiry-card .section-heading {
    margin-bottom: 18px !important;
    text-align: left !important;
  }

  /* Mobile inquiry form: each numbered step becomes a normal vertical block. */
  .wyn-contact .project-inquiry,
  .wyn-contact .project-inquiry .wpcf7,
  .wyn-contact .project-inquiry .wpcf7-form {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .wyn-contact .project-inquiry-items {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 18px 0 !important;
    border-top: 1px solid #ececec;
  }
  .wyn-contact .project-inquiry-items:first-of-type {
    padding-top: 0 !important;
    border-top: 0;
  }
  .wyn-contact .project-inquiry-items .lefts,
  .wyn-contact .project-inquiry-items .rights {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
  }
  .wyn-contact .project-inquiry-items .lefts {
    margin: 0 0 14px !important;
  }
  .wyn-contact .project-inquiry-items .lefts::before,
  .wyn-contact .project-inquiry-items .lefts::after {
    display: none !important;
    content: none !important;
  }
  .wyn-contact .project-inquiry-items .content {
    display: flex !important;
    min-height: 0 !important;
    height: auto !important;
    align-items: center !important;
  }
  .wyn-contact .project-inquiry-items .number {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }
  .wyn-contact .project-inquiry-items .texts {
    min-width: 0;
    margin-left: 10px !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere;
  }
  .wyn-contact .project-inquiry-items fieldset {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }
  .wyn-contact .project-inquiry .choice-grid {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 14px 12px !important;
    border-radius: 7px !important;
    box-sizing: border-box !important;
  }
  .wyn-contact .project-inquiry .choice-grid > .wpcf7-form-control-wrap,
  .wyn-contact .project-inquiry .choice-grid > .wpcf7-form-control-wrap > .wpcf7-form-control {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .wyn-contact .project-inquiry .choice-grid .wpcf7-list-item {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .wyn-contact .project-inquiry .choice-grid .wpcf7-list-item + .wpcf7-list-item {
    margin-top: 7px !important;
  }
  .wyn-contact .project-inquiry .choice-grid .wpcf7-list-item label {
    display: flex !important;
    width: 100% !important;
    min-height: 40px !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 7px 8px !important;
    border-radius: 5px;
    background: #fff;
    font-size: 15px !important;
    line-height: 1.35 !important;
    box-sizing: border-box;
  }
  .wyn-contact .project-inquiry .choice-grid .wpcf7-list-item input {
    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px !important;
    margin: 0 !important;
  }
  .wyn-contact .project-inquiry .form-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
  }
  .wyn-contact .project-inquiry .form-grid > label,
  .wyn-contact .project-inquiry fieldset > label {
    min-width: 0 !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
  }
  .wyn-contact .project-inquiry input:not([type=radio]):not([type=checkbox]):not([type=file]):not([type=submit]),
  .wyn-contact .project-inquiry select,
  .wyn-contact .project-inquiry textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  .wyn-contact .project-inquiry textarea { min-height: 120px !important; }
  .wyn-contact .project-inquiry .file-upload {
    width: 100% !important;
    min-height: 92px !important;
    box-sizing: border-box !important;
  }
  .wyn-contact .project-inquiry .project-inquiry-submit {
    display: block !important;
    width: 100% !important;
    padding-top: 14px !important;
  }
  .wyn-contact .project-inquiry input.wpcf7-submit.button {
    display: flex !important;
    width: 100% !important;
    min-height: 48px !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
  }

  /* Contact methods: icon + copy, never a narrow desktop sidebar. */
  .wyn-contact .contact-methods {
    display: block !important;
  }
  .wyn-contact .wyn-method {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    width: 100% !important;
    margin: 0 0 18px !important;
  }
  .wyn-contact .wyn-method .icons {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
  }
  .wyn-contact .wyn-method article {
    min-width: 0 !important;
    width: 100% !important;
  }
  .wyn-contact .wyn-method .tits {
    margin: 0 0 4px !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
  }
  .wyn-contact .wyn-method .links,
  .wyn-contact .wyn-method .contact-value {
    display: inline-block;
    max-width: 100%;
    font-size: 16px !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word;
  }
  .wyn-contact .wyn-method .texts {
    margin-top: 4px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  .wyn-contact .contact-methods hr { margin: 18px 0 !important; }
  .wyn-contact .wyn-follow {
    margin: 0 0 12px !important;
    font-size: 22px !important;
    line-height: 1.35 !important;
  }
  .wyn-contact .wyn-follow-list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
  }
  .wyn-contact .wyn-follow-links {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header .submenu-toggle span { transition: none; }
  .swiper-wrapper { scroll-behavior: auto; }
}

/* v2.0.17 — Contact mobile overflow + upload copy hardening.
 * These rules are phone-only. Desktop/tablet geometry is intentionally untouched. */
@media (max-width: 767px) {
  /* Prevent any Contact descendant from creating a page-level horizontal scrollbar. */
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  #main,
  .wyn-contact,
  .wyn-contact .wrap,
  .wyn-contact .contact-layout,
  .wyn-contact .inquiry-card,
  .wyn-contact .contact-methods,
  .wyn-contact .project-inquiry,
  .wyn-contact .project-inquiry .wpcf7,
  .wyn-contact .project-inquiry .wpcf7-form,
  .wyn-contact .project-inquiry-items,
  .wyn-contact .project-inquiry-items .lefts,
  .wyn-contact .project-inquiry-items .rights,
  .wyn-contact .project-inquiry fieldset,
  .wyn-contact .project-inquiry .choice-grid,
  .wyn-contact .project-inquiry .form-grid,
  .wyn-contact .project-inquiry .file-upload,
  .wyn-contact .project-inquiry .upload-list,
  .wyn-contact .wyn-method,
  .wyn-contact .wyn-method article {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Reset desktop article indentation in the Contact methods card on phones. */
  .wyn-contact .contact-methods article {
    padding: 0 !important;
    border-left: 0 !important;
  }

  /* File upload: title/hint must be separate rows, never absolutely overlap. */
  .wyn-contact .project-inquiry .file-upload {
    display: flex !important;
    min-height: 132px !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 18px 14px !important;
    overflow: hidden !important;
    text-align: center !important;
  }
  .wyn-contact .project-inquiry .file-upload .upload-icon,
  .wyn-contact .project-inquiry .file-upload .upload-title,
  .wyn-contact .project-inquiry .file-upload .upload-hint {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  .wyn-contact .project-inquiry .file-upload .upload-icon {
    flex: 0 0 24px !important;
    width: 24px !important;
    height: 24px !important;
  }
  .wyn-contact .project-inquiry .file-upload .upload-title {
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    color: #222 !important;
  }
  .wyn-contact .project-inquiry .file-upload .upload-hint {
    font-size: 12px !important;
    line-height: 1.45 !important;
    color: #666 !important;
  }

  /* CF7 controls and labels may carry intrinsic widths; keep them inside the card. */
  .wyn-contact .project-inquiry label,
  .wyn-contact .project-inquiry .wpcf7-form-control-wrap,
  .wyn-contact .project-inquiry .wpcf7-form-control,
  .wyn-contact .project-inquiry input,
  .wyn-contact .project-inquiry select,
  .wyn-contact .project-inquiry textarea,
  .wyn-contact .project-inquiry .wpcf7-list-item,
  .wyn-contact .project-inquiry .wpcf7-list-item label,
  .wyn-contact .project-inquiry .upload-file {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .wyn-contact .project-inquiry .wpcf7-list-item-label,
  .wyn-contact .project-inquiry .upload-file-name {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  /* Long contact values/descriptions wrap inside the right-hand content column. */
  .wyn-contact .wyn-method article,
  .wyn-contact .wyn-method .tits,
  .wyn-contact .wyn-method .links,
  .wyn-contact .wyn-method .contact-value,
  .wyn-contact .wyn-method .texts {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
}
