/* Local-only mobile review. The original desktop stylesheet is unchanged. */
.mobile-filter-toggle { display: none; }


@media (max-width: 640px) {
  form button:disabled { opacity: .55; cursor: not-allowed; }
  .home-product-visual { background: transparent; }
  .home-product-visual .home-product-overlay {
    position: static; inset: auto; opacity: 1;
    align-items: flex-start; justify-content: flex-start;
    padding: 13px 0 0; color: var(--ink); text-align: left;
    transition: none;
  }
  .home-product-overlay strong { max-width: 100%; font-size: 21px; line-height: 1.2; }
  .home-product-overlay span { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.4; }
  .home-product-visual img,
  .home-product-card:hover .home-product-visual img,
  .home-product-visual:focus-visible img { filter: none; transform: none; transition: none; }
  .home-product-visual .home-product-scene,
  .catalogue-grid .catalogue-piece-media .catalogue-product-scene { display: none; }
}

@media (max-width: 640px) {
  /* Extend the page canvas into the phone safe area, not the browser controls. */
  body { padding-top: calc(72px + env(safe-area-inset-top, 0px)); }
  .shell { width: min(var(--max), calc(100% - 48px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))); }
  .site-header { padding-top: env(safe-area-inset-top, 0px); }
  .mobile-panel { top: calc(72px + env(safe-area-inset-top, 0px)); max-height: calc(100dvh - 72px - env(safe-area-inset-top, 0px)); overflow-y: auto; padding-left: calc(24px + env(safe-area-inset-left, 0px)); padding-right: calc(24px + env(safe-area-inset-right, 0px)); padding-bottom: calc(44px + env(safe-area-inset-bottom, 0px)); }
  .site-footer { margin-bottom: 0; padding-bottom: calc(34px + env(safe-area-inset-bottom, 0px)); }
  .reveal, .reveal.in-view { transform: none; opacity: 1; transition: none; will-change: auto; }
  .home-selection-head { min-height: 0; padding: 28px 20px; margin-bottom: 22px; }
  .home-selection-head .section-title { font-size: 31px; line-height: 1.12; }
  .home-selection-head p { font-size: 15px; line-height: 1.55; }
  .home-selection-head .text-link { min-height: 44px; display: inline-flex; align-items: center; }
  .home-product-grid { gap: 28px 14px; }
  .home-product-visual > img:not(.home-product-scene) { aspect-ratio: 3 / 2; object-fit: contain; object-position: center; }

  .collection-page--catalogue { display: flex; flex-direction: column; }
  .catalogue-hero { order: 0; height: auto; min-height: 0; max-height: none; }
  .catalogue-hero-content { min-height: 0; padding-top: 110px; padding-bottom: 28px; }
  .catalogue-hero h1 { font-size: 34px; line-height: 1.1; }
  .catalogue-hero-copy p { margin-top: 16px; font-size: 15px; line-height: 1.5; }
  .catalogue-section { order: 1; padding: 28px 0 38px; }
  .collection-page--catalogue > .collection-projects { order: 2; }
  .catalogue-outro { order: 3; }
  .catalogue-section-head { gap: 12px; margin-bottom: 18px; align-items: center; }
  .catalogue-section-head h2 { font-size: 27px; line-height: 1.15; }
  .catalogue-section-head .result-count { font-size: 13px; white-space: nowrap; }
  .catalogue-products-layout { gap: 20px; }
  .catalogue-filter-panel { position: static; padding: 0; border: 1px solid var(--line); }
  .mobile-filter-toggle {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; min-height: 48px; padding: 12px 15px;
    border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 15px; cursor: pointer;
  }
  .mobile-filter-toggle::after { content: '+'; font-size: 22px; line-height: 1; }
  .mobile-filter-toggle[aria-expanded="true"]::after { content: '−'; }
  .mobile-filter-content { padding: 0 15px 10px; }
  .mobile-filter-content[hidden] { display: none; }
  .catalogue-filter-panel-head { padding-top: 10px; }
  .catalogue-filter-panel-head strong { font-size: 14px; }
  .catalogue-filter-panel-head button, .catalogue-filter-group-toggle { min-height: 44px; font-size: 14px; }
  .catalogue-filter-options label { min-height: 44px; font-size: 14px; }
  .catalogue-filter-options input { width: 18px; height: 18px; }
  .catalogue-grid.product-grid { gap: 28px 14px; }
  .catalogue-grid.product-grid--samples .product-card .catalogue-piece-media { aspect-ratio: 3 / 2; background: #f1f1ed; }
  .catalogue-grid.product-grid--samples .product-card:nth-child(n) .catalogue-piece-media img:not(.catalogue-product-scene) {
    display: block; width: 100%; height: 100%; object-fit: contain;
    object-position: 50% 50%; padding: 0; transform: none; filter: none;
  }
  .catalogue-piece-heading { gap: 8px; padding-top: 12px; }
  .catalogue-grid .product-card h3 { margin: 6px 0 0; min-height: 0; font-size: 21px; line-height: 1.18; }
  .catalogue-piece-heading > div > span { font-size: 12px; line-height: 1.4; }
  .catalogue-piece-heading .text-link { min-height: 44px; font-size: 12px; }
  .catalogue-grid .product-card .catalogue-piece-heading .add_to_cart_button[data-product_id] {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    width: 100%; min-height: 46px; margin-top: 8px; padding: 10px 12px;
    border: 1px solid var(--ink); background: var(--ink); color: var(--white);
    font-size: 14px; line-height: 1.35; text-align: left; text-transform: none; white-space: normal;
  }
  .catalogue-grid .product-card .catalogue-piece-heading .add_to_cart_button[data-product_id] span { color: inherit; transform: none; flex: 0 0 auto; }
  .catalogue-grid .product-card .catalogue-piece-heading .add_to_cart_button[data-product_id]:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
  .catalogue-grid .product-meta { margin-top: 8px; font-size: 13px; line-height: 1.45; }

  /* All 52 current gallery assets are 3:2; keep the complete furniture visible. */
  .product-detail { padding-top: 24px; padding-bottom: 48px; gap: 28px; }
  .product-detail .product-info > a.text-link { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 48px; padding: 12px 16px; border: 1px solid var(--ink); background: var(--ink); color: var(--white); font-size: 14px; line-height: 1.4; white-space: normal; text-transform: none; }
  .product-detail .product-info > a.text-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
  .product-detail .product-gallery-stage { aspect-ratio: 3 / 2; border: 0; overflow: hidden; }
  .product-detail .product-gallery-stage > img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
  .product-detail .product-gallery-arrow { width: 44px; height: 44px; border: 1px solid rgba(24,24,22,.16); border-radius: 50%; background: rgba(255,255,255,.9); }
  .product-detail .product-gallery-arrow--prev { left: 6px; }
  .product-detail .product-gallery-arrow--next { right: 6px; }
  .product-detail .product-gallery-arrow:focus-visible { outline: 2px solid var(--ink); outline-offset: -4px; }
  .product-detail .product-thumbnail-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(66px, 1fr); gap: clamp(3px, calc((100vw - 320px) / 8 + 3px), 8px); overflow-x: auto; overscroll-behavior-x: contain; }
  .product-detail .product-thumbnail { aspect-ratio: 3 / 2; min-height: 44px; padding: 0; border: 0; }
  .product-detail .product-thumbnail::after { content: ''; position: absolute; inset: 0; border: 1px solid rgba(24,24,22,.16); pointer-events: none; }
  .product-detail .product-thumbnail[aria-current="true"]::after { border: 2px solid var(--ink); }
  .product-detail .product-thumbnail:focus-visible { outline: 2px solid var(--ink); outline-offset: -4px; }
  .product-detail .product-thumbnail-arrow--prev { left: 0; }
  .product-detail .product-thumbnail-arrow--next { right: 0; }

  /* The whole factory card remains one link; avoid nested interactive controls. */
  .about-v2 .about-v2-factory-copy { min-height: 0; padding: 18px 0 0; }
  .about-v2 .about-v2-factory-copy strong { position: static; display: flex; justify-content: space-between; align-items: center; min-height: 48px; margin-top: 18px; padding: 12px 16px; border: 1px solid #f5f4ef; background: #f5f4ef; color: #171815; font-size: 14px; }
  .about-v2 .about-v2-button { width: 100%; justify-content: space-between; min-height: 48px; font-size: 14px; }
  .about-v2 .about-v2-factory:hover .about-v2-factory-media img { filter: saturate(.82) contrast(1.03); }
  .about-v2 .about-v2-factory:focus-visible { outline: 2px solid #f5f4ef; outline-offset: 4px; }

  .collection-projects { padding: 32px 0 40px; }
  .collection-projects-shell { gap: 20px; }
  .collection-projects-head h2 { font-size: 31px; line-height: 1.12; }
  .collection-projects-head-actions .text-link { min-height: 44px; font-size: 13px; display: inline-flex; align-items: center; }
  .collection-project-card-copy strong { font-size: 27px; }
  .case-images { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .case-images .media-frame:nth-child(n) { grid-column: 1 / -1; grid-row: auto; width: 100%; height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .case-images .media-frame:nth-child(n) img { width: 100%; height: 100%; object-fit: cover; }

  .project-contact .section-title { font-size: 31px; line-height: 1.14; }
  body[data-page="home"] .capability-gallery-copy h3 { min-height: 0; font-size: 21px; line-height: 1.2; }
  .project-contact { padding: 38px 0; }
  .project-contact-inner { gap: 18px; padding-top: 0; padding-bottom: 0; }
  .project-contact-copy p { font-size: 16px; line-height: 1.55; }
  .project-contact .contact-actions > .hero-text-link { display: none; }
  .catalogue-outro { padding: 38px 0; }
  .catalogue-outro h2 { font-size: 30px; line-height: 1.14; }
  .catalogue-outro-inner { gap: 18px; }
  .collection-page--catalogue .catalogue-outro .btn { display: flex; width: fit-content; max-width: 100%; margin-left: auto; margin-right: auto; justify-content: center; }
  .site-footer { padding-top: 34px; }
  .footer-grid { gap: 24px 18px; }
  .site-footer .footer-grid > :first-child { grid-column: 1 / -1; width: 100%; max-width: none; text-align: center; }
  .site-footer .footer-brand { display: flex; justify-content: center; }
  .site-footer .footer-note { margin-left: auto; margin-right: auto; text-align: center; }
  .footer-note { margin-top: 12px; font-size: 14px; line-height: 1.5; }
  .footer-col h3 { margin-bottom: 8px; font-size: 14px; }
  .footer-col a { display: flex; align-items: center; min-height: 40px; font-size: 14px; line-height: 1.3; }
  .footer-col span { font-size: 14px; line-height: 1.5; }
  .footer-bottom { margin-top: 28px; font-size: 12px; }
  .btn, .menu-toggle { min-height: 44px; }

  /* Projects: a touch-first list, not stacked desktop editorial panels. */
  .projects-page--portfolio .portfolio-hero { height: auto; min-height: 0; max-height: none; }
  .projects-page--portfolio .portfolio-hero-content { height: auto; min-height: 0; padding-top: 36px; padding-bottom: 32px; }
  .projects-page--portfolio .portfolio-hero h1 { font-size: 34px; line-height: 1.08; }
  .projects-page--portfolio .portfolio-hero-copy p { margin-top: 14px; font-size: 15px; line-height: 1.55; }
  .projects-page--portfolio .portfolio-hero-caption,
  .projects-page--portfolio .portfolio-overview { display: none; }
  .projects-page--portfolio .portfolio-stories-inner { display: grid; gap: 24px; padding-top: 24px; padding-bottom: 40px; }
  .projects-page--portfolio .portfolio-story { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0 0 24px; scroll-margin-top: 90px; }
  .projects-page--portfolio .portfolio-story-media { order: 0; height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .projects-page--portfolio .portfolio-story-media img,
  .projects-page--portfolio .portfolio-story:hover .portfolio-story-media img { transform: none; transition: none; }
  .projects-page--portfolio .portfolio-story-copy { order: 1; display: block; min-height: 0; padding: 14px 0 0; background: transparent; color: var(--ink); }
  .projects-page--portfolio .portfolio-story-number,
  .projects-page--portfolio .portfolio-story-content > p,
  .projects-page--portfolio .portfolio-story-facts { display: none; }
  .projects-page--portfolio .portfolio-story-meta { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 6px 14px; padding: 0; border: 0; font-size: 12px; line-height: 1.5; color: var(--muted); text-transform: none; }
  .projects-page--portfolio .portfolio-story-meta span:first-child { color: var(--muted); }
  .projects-page--portfolio .portfolio-story h2 { max-width: none; margin-top: 8px; font-size: 25px; line-height: 1.16; }
  .projects-page--portfolio .portfolio-story h2 a { color: var(--ink); }
  .projects-page--portfolio .portfolio-story h2 a:focus-visible { text-decoration: underline; }
  .projects-page--portfolio .portfolio-story .text-link { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; min-height: 48px; margin-top: 16px; padding: 12px 16px; border: 1px solid var(--ink); background: var(--ink); color: var(--white); font-size: 14px; line-height: 1.4; white-space: normal; text-transform: none; }
  .projects-page--portfolio .portfolio-story .text-link span { color: inherit; transform: none; flex: 0 0 auto; }
  .projects-page--portfolio .portfolio-story .text-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
  .projects-page--portfolio .portfolio-outro { padding: 36px 0; }
  .projects-page--portfolio .portfolio-outro-inner { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .projects-page--portfolio .portfolio-outro h2 { margin: 0; font-size: 30px; line-height: 1.15; }
  .projects-page--portfolio .portfolio-outro p { margin-bottom: 18px; font-size: 15px; line-height: 1.55; }

  /* About: retain the original photo in a landscape mobile banner. */
  .about-v2 .about-v2-hero { height: clamp(240px, 76vw, 320px); min-height: 0; max-height: none; }
  .about-v2 .about-v2-hero > img { object-position: center 54%; }
  .about-v2 .about-v2-hero-copy { margin-bottom: 28px; }
  .about-v2 .about-v2-hero-copy h1 { margin-bottom: 12px; font-size: 34px; line-height: 1.08; }
  .about-v2 .about-v2-hero-copy p { max-width: 310px; font-size: 19px; line-height: 1.3; }

  /* Manufacturing: map first, then normal-flow touch targets and photo summaries. */
  .manufacturing-page--story .maker-hero { height: auto; min-height: 0; }
  .manufacturing-page--story .maker-hero-content { height: auto; padding: 32px 0 24px; text-align: left; align-items: stretch; }
  .manufacturing-page--story .maker-hero-copy { padding: 0; align-items: flex-start; }
  .manufacturing-page--story .maker-hero h1 { font-size: 34px; line-height: 1.1; }
  .manufacturing-page--story .maker-hero p { margin: 14px 0 8px; font-size: 15px; line-height: 1.55; }
  .manufacturing-page--story .maker-hero .text-link { display: none; }
  .manufacturing-page--story .maker-bases { padding: 30px 0 40px; }
  .manufacturing-page--story .maker-heading { margin-bottom: 20px; }
  .manufacturing-page--story .maker-heading h2 { margin: 0; font-size: 29px; line-height: 1.12; }
  .manufacturing-page--story .maker-heading p { margin: 12px 0 0; font-size: 15px; line-height: 1.55; }
  .manufacturing-page--story .factory-map { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; min-height: 0; overflow: visible; border: 0; background: transparent; }
  .manufacturing-page--story .factory-map-frame { position: static; z-index: auto; width: 100%; height: auto; aspect-ratio: 40 / 19; object-fit: contain; filter: grayscale(.5) brightness(.9); background: #30312e; }
  .mobile-factory-map-image { position: relative; min-width: 0; }
  .mobile-factory-pin { position: absolute; display: grid; place-items: center; width: 44px; height: 44px; transform: translate(-50%, -50%); }
  .mobile-factory-pin > span { width: 18px; height: 18px; border: 3px solid #fff; border-radius: 50%; background: #565329; box-shadow: 0 0 0 1px #565329, 0 2px 6px #0006; }
  .mobile-factory-pin small { position: absolute; bottom: 37px; padding: 3px 6px; border-radius: 2px; background: #20201d; color: #fff; white-space: nowrap; font-size: 12px; line-height: 1.4; }
  .mobile-factory-pin:focus-visible { outline: 2px solid #20201d; outline-offset: 2px; }
  .mobile-factory-map-note { position: absolute; bottom: 4px; left: 4px; padding: 2px 5px; background: #20201de6; color: #fff; font-size: 11px; pointer-events: none; }
  .manufacturing-page--story .factory-map-shade,
  .manufacturing-page--story .factory-map-dot { display: none; }
  .manufacturing-page--story .factory-map-marker { position: static; display: block; width: 100%; min-width: 0; }
  .manufacturing-page--story .factory-map-card { width: 100%; min-width: 0; padding: 14px 16px; box-shadow: none; transition: none; }
  .manufacturing-page--story .factory-map-marker:hover .factory-map-card { transform: none; }
  .manufacturing-page--story .factory-map-card small { font-size: 12px; }
  .manufacturing-page--story .factory-map-card strong { margin-top: 6px; font-size: 25px; }
  .manufacturing-page--story .factory-map-card em { margin-top: 12px; padding-top: 10px; font-size: 13px; }
  .manufacturing-page--story .factory-map-attribution { position: static; justify-self: start; padding: 6px 0; background: transparent; font-size: 11px; }
  .manufacturing-page--story .factory-introductions { margin-top: 32px; }
  .manufacturing-page--story .factory-introduction { padding-top: 28px; }
  .manufacturing-page--story .factory-introduction + .factory-introduction { margin-top: 36px; }
  .manufacturing-page--story .factory-introduction-head { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .manufacturing-page--story .factory-introduction-head h3 { margin: 0; font-size: 29px; line-height: 1.12; }
  .manufacturing-page--story .factory-introduction-head > p { font-size: 15px; line-height: 1.55; }
  .manufacturing-page--story .factory-introduction-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; margin-top: 20px; }
  .manufacturing-page--story .factory-introduction-photo--primary { grid-column: 1 / -1; }
  .manufacturing-page--story .factory-introduction-photo img,
  .manufacturing-page--story .factory-introduction-photo--primary img,
  .manufacturing-page--story .factory-introduction-photo:not(.factory-introduction-photo--primary) img { height: auto; aspect-ratio: 16 / 10; }
  .manufacturing-page--story .factory-introduction-photo figcaption { min-height: 0; padding-top: 8px; }
  .manufacturing-page--story .factory-introduction-photo figcaption strong { font-size: 13px; }
  .manufacturing-page--story .factory-introduction-photo figcaption > span { display: none; }
  .manufacturing-page--story .factory-introduction-foot { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 20px; padding-top: 10px; }
  .manufacturing-page--story .factory-introduction-foot > div { display: none; }
  .manufacturing-page--story .factory-introduction-foot .text-link { display: flex; justify-content: space-between; align-items: center; justify-self: stretch; min-height: 44px; font-size: 13px; }

  /* Factory details: preserve every stage and archive photo, without tall panels. */
  .factory-proof-page .factory-proof-hero { height: auto; min-height: 0; }
  .factory-proof-page .factory-proof-hero-inner { height: auto; gap: 20px; padding-top: 16px; padding-bottom: 28px; }
  .factory-proof-page .factory-back-link { min-height: 44px; font-size: 13px; }
  .factory-proof-page .factory-proof-kicker { font-size: 12px; }
  .factory-proof-page .factory-proof-hero-copy h1 { margin: 10px 0 14px; font-size: 34px; line-height: 1.08; }
  .factory-proof-page .factory-proof-hero-copy > p:last-child { font-size: 15px; line-height: 1.5; }
  .factory-proof-page .factory-proof-intro,
  .factory-proof-page .factory-proof-evidence,
  .factory-proof-page .factory-process-archive { padding: 36px 0; }
  .factory-proof-page .factory-proof-intro-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .factory-proof-page .factory-proof-intro h2,
  .factory-proof-page .factory-proof-section-head h2,
  .factory-proof-page .factory-proof-next h2,
  .factory-proof-page .factory-process-archive-head h2 { margin-top: 10px; font-size: 29px; line-height: 1.14; }
  .factory-proof-page .factory-proof-intro-copy > p { margin-bottom: 20px; font-size: 15px; line-height: 1.55; }
  .factory-proof-page .factory-proof-facts > div { grid-template-columns: 90px minmax(0, 1fr); gap: 14px; padding: 12px 0; }
  .factory-proof-page .factory-proof-facts dt { font-size: 12px; }
  .factory-proof-page .factory-proof-route { padding-top: 32px; }
  .factory-proof-page .factory-proof-section-head { margin-bottom: 24px; }
  .factory-proof-page .factory-proof-stage { min-height: 0; grid-template-columns: minmax(0, 1fr); padding: 20px 0; gap: 16px; }
  .factory-proof-page .factory-proof-stage-copy,
  .factory-proof-page .factory-proof-stage--reverse .factory-proof-stage-copy { order: 0; padding: 0; }
  .factory-proof-page .factory-proof-stage-copy > span { margin-bottom: 8px; font-size: 16px; }
  .factory-proof-page .factory-proof-stage-copy h3 { margin-bottom: 10px; font-size: 25px; line-height: 1.15; }
  .factory-proof-page .factory-proof-stage-copy p { font-size: 15px; line-height: 1.5; }
  .factory-proof-page .factory-proof-stage figure,
  .factory-proof-page .factory-proof-stage--reverse figure { order: 1; height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .factory-proof-page .factory-proof-mosaic { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; gap: 16px 12px; }
  .factory-proof-page .factory-proof-mosaic figure { min-height: 0; margin: 0; overflow: visible; background: transparent; }
  .factory-proof-page .factory-proof-mosaic-main { grid-column: 1 / -1; grid-row: auto; }
  .factory-proof-page .factory-proof-mosaic img,
  .factory-proof-page .factory-proof-mosaic figure:hover img { height: auto; aspect-ratio: 16 / 10; filter: saturate(.86); transition: none; }
  .factory-proof-page .factory-proof-mosaic figcaption { position: static; padding-top: 8px; opacity: 1; color: var(--factory-ink); font-size: 13px; line-height: 1.4; transition: none; }
  .factory-proof-page .factory-process-archive-head { gap: 12px; margin-bottom: 22px; padding-bottom: 18px; }
  .factory-proof-page .factory-process-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; }
  .factory-proof-page .factory-process-record figcaption { grid-template-columns: minmax(0, 1fr); gap: 4px; padding-top: 10px; }
  .factory-proof-page .factory-process-record figcaption > span { padding: 0; font-size: 12px; }
  .factory-proof-page .factory-process-record strong { font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
  .factory-proof-page .factory-process-record small { font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
  .factory-proof-page .factory-process-record-media a { display: block; width: 100%; height: 100%; }
  .factory-proof-page .factory-process-record-media a:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
  .factory-proof-page .factory-proof-next { padding: 36px 0; }
  .factory-proof-page .factory-proof-next-inner { grid-template-columns: minmax(0, 1fr); gap: 20px; }

  /* Requested mobile action links; retain original anchors and carousel handlers. */
  body[data-page="home"] .collection-projects-head-actions .text-link,
  body[data-page="home"] .home-selection-head .text-link,
  body[data-page="home"] .capabilities-editorial-head > .text-link,
  .manufacturing-page--story .factory-introduction-foot .text-link {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; min-height: 48px; padding: 12px 16px; border: 1px solid var(--ink);
    background: var(--ink); color: var(--white); font-size: 14px; line-height: 1.4;
    white-space: normal; text-transform: none;
  }
  body[data-page="home"] .hero-minimal-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 48px; padding: 12px 18px; border: 1px solid #fff; background: #fff; color: #20201d; font-size: 14px; white-space: normal; }
  .manufacturing-page--story .factory-introduction-foot .text-link { background: #f5f4ef; color: #171815; border-color: #f5f4ef; }
  body[data-page="home"] .collection-projects-head-actions .text-link span,
  body[data-page="home"] .home-selection-head .text-link span,
  body[data-page="home"] .capabilities-editorial-head > .text-link span,
  body[data-page="home"] .hero-minimal-cta span,
  .manufacturing-page--story .factory-introduction-foot .text-link span { color: inherit; transform: none; flex: 0 0 auto; }
  body[data-page="home"] .collection-projects-head-actions .text-link:focus-visible,
  body[data-page="home"] .home-selection-head .text-link:focus-visible,
  body[data-page="home"] .capabilities-editorial-head > .text-link:focus-visible,
  .manufacturing-page--story .factory-introduction-foot .text-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

  /* Contact is a compact, one-column phone form, including cart enquiry mode. */
  body[data-page="contact"] .page-hero { padding: 30px 0 24px; }
  body[data-page="contact"] .page-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  body[data-page="contact"] .display-title { font-size: 34px; line-height: 1.12; }
  body[data-page="contact"] .lede { margin: 0; font-size: 16px; line-height: 1.55; }
  body[data-page="contact"] main > .section { padding: 24px 0 36px; }
  body[data-page="contact"] .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body[data-page="contact"] .contact-details { display: grid; gap: 14px; min-width: 0; }
  body[data-page="contact"] .contact-brief-heading .section-title { margin: 0 0 4px; font-size: 26px; line-height: 1.2; }
  body[data-page="contact"] .contact-line { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin: 0; padding: 16px; border: 1px solid var(--line); background: #fff; }
  body[data-page="contact"] .contact-line small { font-size: 13px; }
  body[data-page="contact"] .contact-line > span { font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
  body[data-page="contact"] .contact-line a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; max-width: 100%; }
  body[data-page="contact"] .contact-grid > form { grid-template-columns: minmax(0, 1fr); gap: 18px; min-width: 0; padding: 20px 16px; }
  body[data-page="contact"] .form-field { min-width: 0; }
  body[data-page="contact"] .form-field label { font-size: 14px; line-height: 1.4; }
  body[data-page="contact"] .form-field input,
  body[data-page="contact"] .form-field select,
  body[data-page="contact"] .form-field textarea { width: 100%; min-width: 0; min-height: 48px; font-size: 16px; }
  body[data-page="contact"] .form-field textarea { min-height: 136px; }
  body[data-page="contact"] .form-field .btn { width: 100%; min-height: 48px; font-size: 14px; }
  body[data-page="contact"] .file-dropzone { min-height: 132px; padding: 16px 12px; }
  body[data-page="contact"] .file-dropzone-title { font-size: 18px; line-height: 1.3; }
  body[data-page="contact"] .file-dropzone-note { font-size: 13px; }
  body[data-page="contact"] .file-dropzone-action { min-height: 44px; }
  body[data-page="contact"] .enquiry-summary { min-width: 0; padding: 16px 12px; overflow-wrap: anywhere; }
  body[data-page="contact"] .enquiry-summary-head { flex-wrap: wrap; gap: 8px 14px; }
  body[data-page="contact"] .enquiry-summary-head h3 { font-size: 23px; }
  body[data-page="contact"] .enquiry-summary-head a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
  body[data-page="contact"] .enquiry-summary-item { gap: 10px; min-width: 0; }
  body[data-page="contact"] .enquiry-summary-item img { height: 48px; }
  body[data-page="contact"] .statement { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body[data-page="contact"] .statement-quote { font-size: 29px; line-height: 1.15; }
  body[data-page="contact"] .statement-copy p { font-size: 16px; line-height: 1.55; }
  body[data-page="contact"] .statement-copy .text-link { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: 12px 16px; background: #f5f4ef; color: #171815; border: 1px solid #f5f4ef; font-size: 14px; white-space: normal; }
}

@media (max-width: 560px) {
  .shell { width: calc(100% - 32px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)); }
}
