/* Shared phone layout, loaded after each page's existing styles. */
.mobile-nav-contacts, .mobile-collection-select, .mobile-dialog-actions { display: none; }
.accordion-nav .nav-label { display: none; }

@media (max-width: 760px) {
  :root { --page-gutter: 20px; --section-space: 48px; --mobile-header-height: 68px; }
  html { scroll-padding-top: calc(var(--mobile-header-height) + 16px); }
  .catalog-design .container { padding-inline: 20px; }
  .catalog-design .top-bar { display: none; }
  .catalog-design .header { position: sticky; top: 0; z-index: 100; }
  .catalog-design .header-wrapper { min-height: 68px; padding-block: 8px; display: flex; flex-wrap: nowrap; gap: 12px; }
  .catalog-design .logo .brand-logo { width: 48px; height: 48px; }
  .catalog-design .header-actions { order: 1; display: flex; width: auto; margin-left: auto; gap: 0; }
  .catalog-design .header-actions .btn-quote:not(:last-child) { display: none; }
  .catalog-design .header-actions .btn-quote:last-child { display: inline-flex; min-height: 44px; padding: 10px 14px; margin: 0 !important; font-size: 13px; }
  .catalog-design .mobile-menu-toggle { order: 2; width: 44px; height: 44px; padding: 0; margin: 0; flex: 0 0 44px; align-items: center; justify-content: center; }
  .catalog-design .mobile-menu-toggle span { font-size: 25px; line-height: 1; }
  .catalog-design .main-nav { order: 3; position: fixed; top: var(--mobile-header-height); left: 0; right: 0; width: 100%; max-width: none; max-height: calc(100dvh - var(--mobile-header-height)); overflow-y: auto; overscroll-behavior: contain; padding: 8px 20px 20px; align-items: stretch; justify-self: stretch; gap: 0; }
  .catalog-design .main-nav .nav-link { min-height: 48px; padding: 14px 4px; font-size: 16px; }
  .catalog-design .main-nav .nav-link.active { color: #40564c; font-weight: 700; }
  .mobile-nav-contacts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
  .mobile-nav-contacts a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; border: 1px solid #cbd5cf; border-radius: 4px; color: #40564c; font-size: 14px; }
  .catalog-design :is(input:not([type=checkbox]):not([type=radio]):not([type=file]), select, textarea) { font-size: 16px; }
  .catalog-design :is(button, a, summary, input, select, textarea) { -webkit-tap-highlight-color: #536b6026; }
  .catalog-design :is(button, a, summary):focus-visible { outline: 2px solid #536b60; outline-offset: 3px; }
  .catalog-design .action-link { min-height: 48px; max-width: 100%; font-size: 14px; gap: 16px; white-space: normal; }
  .catalog-design .page-header:not(.page-banner), .catalog-design .blog-hero { padding-block: 36px !important; }
  .catalog-design .page-header h1, .catalog-design .blog-hero h1 { font-size: 34px !important; line-height: 1.15; }
  .catalog-design section.page-banner { display: flex; flex-direction: column; }
  .page-banner > .container { padding-block: 32px 24px; }
  .page-banner > .page-banner-image { order: 2; width: 100%; height: 176px; object-fit: cover; object-position: right center; }
  .catalog-design .page-banner h1 { max-width: 100%; font-size: 34px !important; }
  .catalog-design .page-banner p { max-width: 100%; margin-top: 16px; font-size: 15px !important; }
  .page-banner .eyebrow { margin-bottom: 14px; }
  .oem-hero-link, .about-hero-link { margin-top: 20px; }

  .home-page .accordion-hero { padding: 8px 12px 0; }
  .home-page .accordion-track { height: min(600px, calc(100svh - 148px)); min-height: 450px; }
  .home-page .panel-copy { inset: 70px 22px 24px; }
  .home-page .panel-copy h1, .home-page .panel-copy h2 { font-size: 34px; line-height: 1.12; margin-bottom: 16px; }
  .home-page .panel-copy p { font-size: 14px; line-height: 1.65; white-space: normal; }
  .home-page .hero-carousel .panel-copy .eyebrow { font-size: 11px; line-height: 1.5; margin-bottom: 14px; }
  .home-page .is-active .panel-select { padding: 20px 22px; }
  .home-page .accordion-footer { padding: 8px 0 12px; }
  .home-page .accordion-footer > span { display: none; }
  .home-page .accordion-nav { display: grid; grid-template-columns: repeat(4, 1fr); width: 100%; gap: 4px; }
  .home-page .accordion-nav button { min-height: 44px; padding: 8px 2px; font-size: 12px; }
  .home-page .accordion-nav .nav-number { display: none; }
  .home-page .accordion-nav .nav-label { display: inline; }
  .home-page .panel-video-control { width: 44px; height: 44px; right: 16px; bottom: 24px; }
  .home-page .accordion-panel:nth-child(4) { background: #c9cdd2; }
  .home-page .accordion-panel:nth-child(4) > img { top: auto; bottom: 86px; height: auto; object-fit: contain; mask-image: linear-gradient(transparent, #000 18%, #000 82%, transparent); }
  .home-page .collection-facts { padding-block: 20px; }
  .home-page .collection-facts .container { gap: 20px 12px; }
  .home-page .collection-facts strong { font-size: 22px; }
  .home-page .collection-facts .container > div > span { font-size: 12px; }
  .home-page :is(.arch-collection, .range-collection, .maker-section, .closing-section) { padding-block: 48px; }
  .home-page .editorial-heading { gap: 16px; margin-bottom: 24px; padding-bottom: 20px; }
  .home-page .editorial-heading h2, .home-page .custom-copy h2, .home-page .closing-section h2 { font-size: 30px; line-height: 1.18; }
  .home-page .heading-side p { font-size: 14px; }
  .home-page .home-featured { grid-template-columns: 1fr; row-gap: 30px !important; }
  .home-page .collection-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
  .home-page .collection-mosaic .collection-tile:nth-child(n) { grid-column: span 1; aspect-ratio: 3 / 4; height: auto; }
  .home-page .collection-mosaic .collection-tile:first-child { grid-column: 1 / -1; aspect-ratio: 3 / 2; }
  .home-page .tile-caption { left: 10px; right: 10px; bottom: 12px; }
  .home-page .tile-caption strong { font-size: 15px; line-height: 1.35; overflow-wrap: break-word; }
  .home-page .tile-caption .round-arrow { display: none; }
  .home-page .tile-caption small { font-size: 10px; }
  .home-page .why-layout { gap: 28px; }
  .home-page .why-reasons li { gap: 12px; padding-block: 20px; }
  .home-page .why-actions { justify-content: flex-start; gap: 12px 20px; }
  .home-page .custom-section > .container { padding: 0; }
  .home-page .custom-copy { padding: 36px 20px; }
  .home-page .custom-image { aspect-ratio: 4 / 3; }

  .catalog-heading { position: relative; display: block; background-position: 73% center; min-height: 270px; padding-block: 30px; aspect-ratio: auto; isolation: isolate; }
  .catalog-heading::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #f1f2efed 30%, #f1f2efb0 66%, #f1f2ef12); }
  .catalog-heading .container { gap: 16px; }
  .catalog-heading .eyebrow { font-size: 10px; margin-bottom: 14px; }
  .catalog-heading h1 { font-size: 38px; line-height: 1.08; max-width: 250px; }
  .catalog-heading p { font-size: 13px; max-width: 260px; line-height: 1.7; }
  .catalog-design .catalog-filter { position: sticky; top: var(--mobile-header-height); padding-block: 0 !important; }
  .catalog-design .catalog-filter > .container { grid-template-columns: minmax(0, 1fr); gap: 8px; padding-block: 10px; }
  .catalog-filter .filter-toolbar { display: contents; }
  .catalog-filter .filter-caption { display: none; }
  .catalog-filter .filter-toolbar .catalog-search { width: 100%; }
  .catalog-design .catalog-filter.has-mobile-collections .filter-links { display: none; }
  .mobile-collection-select { display: block; min-width: 0; position: relative; }
  .mobile-collection-select select { width: 100%; min-height: 44px; border: 1px solid #cbd5cf; border-radius: 4px; background: #fff; color: #354a40; padding: 8px 12px; }
  .catalog-filter .catalog-search { height: 44px; gap: 8px; }
  .catalog-filter .catalog-search input { padding: 10px 0; font-size: 16px; }
  .catalog-filter .catalog-search button { width: 44px; height: 42px; }
  .catalog-category { padding-block: 36px; }
  .catalog-category .editorial-heading { gap: 12px; margin-bottom: 24px; }
  .catalog-category h2 { font-size: 28px; line-height: 1.2; overflow-wrap: break-word; }
  .catalog-category .heading-side p { font-size: 14px; margin: 0; }
  #main-content .catalog-category .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px !important; }
  #main-content .catalog-category .catalog-card:has(.product-choices) h3 { font-size: 15px; line-height: 1.4; min-height: 42px; margin-bottom: 8px; }
  #main-content .catalog-category .catalog-card:has(.product-choices) .catalog-card-copy { padding-top: 12px; }
  #main-content .catalog-category .catalog-card:has(.product-choices) .card-bottom { margin-top: auto; }
  .catalog-category .product-choices { gap: 4px; }
  .catalog-category .product-choices .choice-fields { flex-basis: 100%; }
  .catalog-category .choice-finishes { height: auto; min-height: 44px; max-width: 100%; }
  .catalog-category .choice-swatches { flex-wrap: wrap; gap: 0; }
  .catalog-category .choice-design summary { font-size: 12px; padding-inline: 8px; }
  #main-content .catalog-card:has(.product-choices) h3 { font-size: 18px; min-height: 0; margin: 0 0 10px; line-height: 1.4; }
  #main-content .catalog-card:has(.product-choices) .catalog-card-copy { padding-top: 14px; }
  .product-choices { height: auto; min-height: 44px; gap: 8px; flex-wrap: wrap; padding: 0; margin-bottom: 4px; }
  .product-choices .choice-fields { flex: 1 1 170px; }
  .product-choices:not(.has-visual-choices) { min-height: 0; height: 0; margin: 0; }
  .choice-design summary { min-height: 44px; height: auto; padding: 10px; font-size: 13px; }
  .choice-finishes { height: 44px; }
  .choice-swatches button { width: 44px; height: 44px; }
  .choice-swatches button::before { inset: 9px; }
  .choice-design-panel { max-height: 240px; max-width: calc(100vw - 40px); width: 280px; }
  #main-content .catalog-card:has(.product-choices) .spec-link { min-height: 44px; font-size: 14px; }
  .scene-toggle { width: 44px; height: 44px; top: 10px; right: 10px; }
  #main-content .catalog-more:has(.product-choices) { margin-top: 28px; }
  .catalog-more > summary { min-height: 48px; padding: 12px; }
  .catalog-custom { padding-block: 40px; }
  .catalog-custom h2 { font-size: 30px; }

  dialog#product-dialog[open] { display: flex; flex-direction: column; position: fixed; inset: 0; margin: 0; width: 100%; max-width: none; height: 100dvh; max-height: 100dvh; border-radius: 0; overflow: hidden; }
  #product-dialog .product-dialog-shell { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: hidden; }
  #product-dialog .dialog-header, #product-dialog.has-text-specs .dialog-header { position: relative; flex: none; padding: max(14px, env(safe-area-inset-top)) 16px 14px; align-items: center; gap: 14px; }
  #product-dialog .dialog-header h2 { font-size: 20px; line-height: 1.25; margin: 0; }
  #product-dialog .dialog-header .eyebrow { font-size: 10px; margin-bottom: 5px; }
  #product-dialog .icon-button { width: 44px; height: 44px; flex-basis: 44px; }
  #product-dialog .dialog-layout { display: block; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
  #product-dialog .dialog-media { position: static; padding: 16px; }
  #product-dialog .dialog-image-stage, #product-dialog.has-text-specs .dialog-image-stage { height: min(34svh, 300px); min-height: 190px; }
  #product-dialog .view-switch { margin-bottom: 12px; }
  #product-dialog .view-switch button { min-height: 44px; padding-inline: 18px; font-size: 13px; }
  #product-dialog .dialog-thumbnails { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; margin-top: 12px; }
  #product-dialog .dialog-thumbnails button { width: 48px; height: 48px; flex: 0 0 48px; }
  #product-dialog .dialog-thumbnails button:first-child { margin-left: auto; }
  #product-dialog .dialog-thumbnails button:last-child { margin-right: auto; }
  #product-dialog .dialog-information { padding: 22px 20px; gap: 16px; }
  #product-dialog .variant-select { margin-block: 0; font-size: 14px; }
  #product-dialog select { min-height: 46px; font-size: 16px; }
  #product-dialog .arch-spec-list > div { font-size: 13px; gap: 14px; padding-block: 12px; }
  #product-dialog .arch-size-table summary { min-height: 44px; padding-block: 12px; }
  .mobile-dialog-actions { display: block; flex: none; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #d3dbd7; }
  .mobile-dialog-actions .action-link { width: 100%; min-height: 48px; }

  .about-main .about-band, .oem-main .oem-band { padding-block: 44px; }
  .about-main h2, .oem-main h2 { font-size: 29px; line-height: 1.2; }
  .about-heading, .oem-heading { gap: 16px; margin-bottom: 26px; }
  .about-main p, .oem-main p { font-size: 15px; line-height: 1.75; }
  .about-nav > .container, .oem-nav > .container { overflow-x: auto; justify-content: flex-start; }
  .about-nav .container > div, .oem-nav .container > div { flex: 0 0 auto; display: flex; flex-wrap: nowrap; gap: 22px; width: auto; }
  .about-nav a, .oem-nav a { flex: none; white-space: nowrap; min-height: 48px; padding-block: 15px; font-size: 12px; }
  .about-nav .container > span, .oem-nav-label { display: none; }
  .about-facts { margin-top: 28px; padding-top: 24px; gap: 24px; }
  .about-facts > div { padding-left: 16px; }
  .about-facts dd { font-size: 28px; }
  .about-tour-side { grid-row: auto; }
  .about-tour-tabs button { height: auto; min-height: 88px; padding: 8px 4px; gap: 8px; }
  .about-tour-tabs button > span { font-size: 11px; }
  .about-document-image { height: 240px; }
  .about-main .about-document .text-link, .about-main .text-link, .oem-main .text-link { min-height: 44px; }
  .about-lightbox-bar .icon-button, .about-review-controls button, .oem-factory-controls button { min-width: 44px; min-height: 44px; }
  .oem-service-layout { display: block; }
  .oem-service-detail { padding-left: 0; }
  .oem-service-detail .oem-service-visual { margin-bottom: 22px; }
  .oem-service summary { font-size: 18px; gap: 14px; min-height: 60px; padding-block: 18px; }
  .oem-stage-panel { min-height: 0; gap: 20px; }
  .oem-steps { display: flex; overflow-x: auto; margin-bottom: 22px; }
  .oem-steps button { flex: 0 0 auto; min-height: 52px; padding: 12px 16px; white-space: nowrap; }
  .oem-term-grid { gap: 28px 20px; }
  .oem-term-grid dd { font-size: 18px; overflow-wrap: break-word; }

  .contact-section { padding-block: 32px; }
  .contact-wrapper { gap: 32px; }
  .contact-form-card { padding: 0; }
  .contact-form-card > h2 { font-size: 26px; }
  .contact-form-card > p { font-size: 15px; line-height: 1.7; margin-bottom: 24px; }
  .contact-form-card .form-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .contact-form-card .form-group.full, .contact-form-card .form-submit { grid-column: 1; }
  .contact-form-card .form-group { margin-bottom: 20px; }
  .contact-form-card :is(input:not([type=file]), select) { min-height: 48px; }
  .contact-form-card textarea { min-height: 150px; }
  #contactForm { scroll-margin-top: calc(var(--mobile-header-height) + 18px); }
  .inquiry-icon { width: 44px; height: 44px; }
  .inquiry-item { grid-template-columns: 48px minmax(0, 1fr) 44px; }
  .inquiry-add { min-height: 44px; font-size: 14px; }
  .inquiry-editor-actions button { min-height: 46px; }
  .inquiry-submit-row > button { width: 100%; min-height: 50px; }
  .contact-info-card { padding: 26px 20px; }
  .contact-info-card .contact-photo { height: 180px; }
  .contact-resources a { min-height: 44px; display: flex; align-items: center; }

  .blog-section { padding-block: 36px !important; }
  .blog-filters { flex-wrap: nowrap; overflow-x: auto; gap: 20px; }
  .blog-filters button { flex: none; min-height: 48px; font-size: 14px; }
  .catalog-design .blog-card-content { padding: 22px 20px; }
  .catalog-design .blog-card h3 { font-size: 21px; line-height: 1.35; }
  .article-page { padding-block: 32px; }
  .article-page .breadcrumbs { margin-bottom: 20px; font-size: 12px; }
  .catalog-design .reading-content h1 { font-size: 30px; line-height: 1.2; }
  .reading-content li { font-size: 16px; }
  .article-contents a { display: inline-block; padding-block: 6px; }
  .article-navigation a { min-height: 44px; }
  .footer { padding-block: 40px 24px; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 18px; }
  .footer-col:first-child, .footer-col:last-child { grid-column: 1 / -1; }
  .footer-brand-link .brand-logo { width: 76px; height: 76px; }
  .footer-col > p { max-width: 340px; font-size: 13px; }
  .footer-links a { display: inline-flex; align-items: center; min-height: 40px; font-size: 13px; }
  .footer-links li { margin: 0; }
  .footer-contact li { font-size: 13px; line-height: 1.65; }
  .footer-bottom { margin-top: 28px; text-align: left; }
  .footer-bottom p { font-size: 11px; line-height: 1.7; }
}

@media (max-width: 360px) {
  .catalog-design .container { padding-inline: 16px; }
  .catalog-design .main-nav { padding-inline: 16px; }
  .home-page .panel-copy h1, .home-page .panel-copy h2 { font-size: 30px; }
  .home-page .panel-copy { inset-inline: 18px; }
  .catalog-heading h1 { font-size: 34px; }
  .home-page .collection-mosaic .collection-tile:nth-child(n) { aspect-ratio: 2 / 3; }
  .home-page .collection-mosaic .collection-tile:first-child { aspect-ratio: 3 / 2; }
}
