@import url("/mobile-services.css");
@import url("/mobile-contact.css");

/* The published desktop composition stays intact. Phones use content-driven
   layouts, readable spacing and touch targets instead of stacked fixed boxes. */
@media (max-width: 809.98px) {
  html { scroll-padding-top: 88px; }

  /* A compact header with a comfortably sized menu control. */
  #main nav.framer-UmTKG {
    padding: 12px 20px !important;
    min-height: 72px;
    height: auto !important;
  }
  #main nav .framer-1dkdvm3 { width: 100%; min-width: 0; }
  #main nav .framer-1u6gubq { min-height: 48px; }
  #main nav .framer-nPZfa { width: 48px !important; height: 48px !important; display: flex; align-items: center; justify-content: center; }
  #main nav .framer-12d1tdi {
    position: relative !important;
    inset: auto !important;
    flex: none !important;
    width: 30px !important;
    height: 28px !important;
    overflow: visible !important;
    transform: none !important;
  }
  #main nav :is(.framer-i8s5u0, .framer-1byhcsm) {
    position: absolute !important;
    left: 0 !important;
    top: 6px !important;
    bottom: auto !important;
    width: 30px !important;
    height: 4px !important;
    transform: none !important;
    transition: top .2s ease, transform .2s ease;
  }
  #main nav .framer-1byhcsm { top: 18px !important; }
  #main nav[data-framer-name="Mobile Open"] :is(.framer-i8s5u0, .framer-1byhcsm) { top: 12px !important; }
  #main nav[data-framer-name="Mobile Open"] .framer-i8s5u0 { transform: rotate(45deg) !important; }
  #main nav[data-framer-name="Mobile Open"] .framer-1byhcsm { transform: rotate(-45deg) !important; }
  #main nav.framer-UmTKG:not([data-framer-name="Mobile Open"]) .framer-5zwflu {
    display: none !important;
  }
  #main nav[data-framer-name="Mobile Open"] {
    max-height: calc(100svh - 80px);
    overflow-y: auto !important;
    overscroll-behavior: contain;
    background: #fffcf8 !important;
    box-shadow: 0 12px 28px rgba(58, 36, 24, .12);
  }
  #main nav[data-framer-name="Mobile Open"] .framer-5zwflu {
    width: 100% !important;
    padding: 12px 0 16px;
    gap: 12px;
  }
  #main nav[data-framer-name="Mobile Open"] .framer-gsmpe6 {
    width: 100%;
    gap: 4px;
  }
  #main nav[data-framer-name="Mobile Open"] .framer-gsmpe6 a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 8px 12px;
    font-size: 17px;
    line-height: 1.5;
  }

  .framer-MNHAd :is(h1, h2).framer-text {
    font-size: clamp(32px, 8.5vw, 40px) !important;
    line-height: 1.25 !important;
    text-wrap: balance;
    overflow-wrap: break-word;
  }
  .framer-MNHAd p.framer-text { line-height: 1.65 !important; }
  html[lang="km"] .framer-MNHAd :is(h1, h2, h3).framer-text { line-height: 1.5 !important; }
  html[lang="km"] .framer-MNHAd p.framer-text { line-height: 1.8 !important; }

  .framer-MNHAd .framer-199extx { padding-bottom: 48px !important; }
  .framer-MNHAd .framer-s1eodh { width: 100% !important; height: auto !important; aspect-ratio: 1.56 !important; }
  .framer-MNHAd .framer-1klhwzr { padding: 8px 20px 0 !important; gap: 22px !important; overflow: visible !important; }
  .framer-MNHAd .framer-1105ojy { width: 100% !important; }
  .framer-MNHAd .framer-1klhwzr p.framer-text { font-size: 17px !important; }
  .framer-MNHAd .framer-171ja8z { padding: 0 20px 56px !important; gap: 28px !important; }
  .framer-MNHAd .framer-1ammt1l { width: 100% !important; height: clamp(300px, 100vw, 460px) !important; }
  .framer-MNHAd .framer-1ppoyhn { padding: 0 !important; }
  .framer-MNHAd .framer-1hk7ksl { gap: 24px !important; }
  .framer-MNHAd .framer-9tmwyt { padding: 0 20px 56px !important; }
  .framer-MNHAd .framer-mqed4e { padding: 56px 20px !important; }
  .framer-MNHAd :is(.framer-146tf1d, .framer-643ctz) { display: none !important; }
  .framer-MNHAd :is(.framer-1ot7tb8, .framer-yvlqj9, .framer-15w9k6v, .framer-zu23wg, .framer-7trf9r, .framer-lmv86a) {
    height: auto !important;
    overflow: visible !important;
  }
  .framer-MNHAd .framer-a83m6s { padding: 56px 20px !important; }
  .framer-MNHAd .framer-rq20t9 { gap: 24px !important; }
  .framer-MNHAd .framer-w16nba { height: auto !important; gap: 16px !important; }
  .framer-MNHAd :is(.framer-1bjhf9n, .framer-102ye15) { height: auto !important; }
  .framer-MNHAd :is(.framer-mbrerr, .framer-60ncot) { width: 100% !important; height: auto !important; aspect-ratio: 4 / 3 !important; }

  /* Two columns retain every gallery photo without several screens of oversized tiles. */
  .framer-MNHAd .framer-114ov7b { padding: 56px 20px !important; }
  .framer-MNHAd .framer-1ekgsl7 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: dense;
    gap: 12px !important;
    overflow: visible !important;
  }
  .framer-MNHAd .framer-msg7ro { grid-column: 1 / -1; margin-bottom: 16px; }
  .framer-MNHAd :is(.framer-185s14f, .framer-tnmn0l, .framer-b0s41f, .framer-d06qal, .framer-1ei8rmt) { display: contents !important; }
  .framer-MNHAd .framer-114ov7b :is(.framer-pf3nc4-container, .framer-th4qy7-container, .framer-17rstw7-container, .framer-r1z6qr-container, .framer-11lsgsr-container, .framer-1w0t6jg, .framer-1i3pi1i) {
    min-width: 0 !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3 / 4 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
  }
  .framer-MNHAd .framer-114ov7b a.framer-KWvCS { width: 100% !important; height: 100% !important; border-radius: 18px !important; }
  /* Keep both sides of the before/after composites visible. */
  .framer-MNHAd .framer-114ov7b :is(.framer-1w0t6jg, .framer-1i3pi1i) {
    grid-column: 1 / -1;
    aspect-ratio: 2544 / 1904 !important;
  }
  .framer-MNHAd .framer-194olwj { padding: 56px 20px !important; }
  .framer-MNHAd .framer-1yxnu1q { padding: 0 !important; overflow: visible !important; }
  .framer-MNHAd .framer-1o4b6zq { gap: 24px !important; overflow: visible !important; }
  .framer-MNHAd :is(.framer-1klhwzr, .framer-1o4b6zq) a.framer-tGy7N {
    width: max-content !important;
    max-width: 100%;
    min-height: 48px;
    height: auto !important;
    padding: 14px 24px !important;
  }
  .framer-MNHAd :is(.framer-1klhwzr, .framer-1o4b6zq) a.framer-tGy7N > div {
    min-width: 0;
    flex: 0 1 auto;
    white-space: normal !important;
  }

  /* Footer links get real columns and enough room for long translated labels. */
  #main footer.framer-X86m5 { padding-bottom: 0 !important; }
  #main footer .framer-5aql49 { padding: 48px 20px calc(88px + env(safe-area-inset-bottom)) !important; gap: 28px !important; }
  #main footer .framer-1avtuaf { width: 100% !important; gap: 28px !important; padding: 0 !important; }
  #main footer :is(.framer-1vi4fi, .framer-1gxd7br, .framer-8y6t9p, .framer-nojz61, .framer-1fhmnyp, .framer-1oe9fn5) {
    width: 100% !important;
    min-width: 0;
    height: auto !important;
  }
  #main footer .framer-1gxd7br { gap: 16px !important; }
  #main footer .framer-8y6t9p { gap: 8px !important; }
  #main footer .framer-text { overflow-wrap: anywhere; }
  #main footer .framer-8y6t9p a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; font-size: 16px !important; }
  #main footer .framer-bvqavh { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100% !important; gap: 8px 16px !important; }
  #main footer .framer-bvqavh > div { width: 100% !important; min-width: 0; height: auto !important; }
  #main footer .framer-bvqavh a { width: 100% !important; min-width: 0; min-height: 44px; height: auto !important; }
  #main footer .framer-11zv4wv { width: 100% !important; min-width: 0; }
  #main footer .framer-bvqavh h3 { font-size: 25px !important; line-height: 1.5 !important; white-space: normal; }
  #main footer :is(.framer-16y746n, .framer-832vrb, .framer-1g3lgd5) { width: 100% !important; height: auto !important; }
  #main footer .framer-1g3lgd5 { flex-direction: row !important; gap: 24px !important; flex-wrap: wrap; }
  #main footer .framer-1g3lgd5 a { min-height: 44px; }
}
