/* ONE HOMES narrow-layout enhancement. Desktop starts at 701px and is protected.
   Do not move these boundaries or modify shared design tokens for mobile work. */
@media (max-width:700px) {
  html { scroll-padding-top:24px; }
  .site-header { padding-inline:max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-right)); }
  .menu-toggle { min-width:72px; min-height:44px; border-radius:6px; }
  .site-header nav { padding:12px 24px 24px; gap:0; max-height:calc(100svh - 88px); max-height:calc(100dvh - 88px); overflow-y:auto; overscroll-behavior:contain; padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  .site-header nav a { font-size:clamp(20px,5.5vw,26px); min-height:56px; padding:12px 0; }
  .hero { height:auto; min-height:max(640px,100svh); max-height:none; padding:180px 24px max(64px,calc(48px + env(safe-area-inset-bottom))); }
  .hero-heading { margin-top:auto; margin-bottom:16px; }
  .hero h1 { font-size:clamp(30px,8.7vw,56px); line-height:1.16; }
  .hero-bottom p { font-size:15px; line-height:1.7; max-width:36em; }
  /* Quiet CTA leaves the hero image visible, while retaining a 44px tap target. */
  .hero-bottom p { margin-bottom:14px; }
  .hero-bottom .button { display:inline-flex; width:auto; min-width:0; min-height:44px; padding:8px 16px; gap:28px; border:1px solid #fff; border-radius:0; background:transparent; color:var(--white); font-size:12px; }
  .hero-bottom .button:hover,.hero-bottom .button:focus-visible { background:transparent; color:var(--white); border-bottom-color:currentColor; }
  .hero-bottom .button span {
    display:inline-block; flex:0 0 17px; width:17px; height:17px;
    font-size:17px; line-height:1; opacity:.75;
  }
  .hero .motion-control { width:auto; min-width:44px; height:44px; padding:0 14px; top:104px; }
  .motion-label { display:inline; }
  .film-caption { bottom:24px; flex-wrap:wrap; row-gap:4px; font-size:9px; }
  .section-pad { padding:56px 24px; }
  .section-label { margin-bottom:26px; }
  .intro h2,.story-caption h2,.objects-copy h2,.brands .partners-heading h2,.section-top h2,.contact h2 { font-size:clamp(32px,8.6vw,48px); line-height:1.15; }
  .intro-copy { margin-top:26px; }
  .intro-copy p,.story-caption p:not(.eyebrow),.service-body p,.objects-copy p:not(.eyebrow),.contact-copy>p { font-size:16px; line-height:1.75; }
  .detail-line { gap:14px 18px; margin-top:32px; font-size:9px; }
  .image-story { padding-bottom:56px; }
  .story-photo { height:auto; min-height:0; max-height:none; aspect-ratio:4/3; }
  .story-caption { padding:30px 24px 0; }
  .story-caption .eyebrow { margin-bottom:20px; }
  .story-caption p:not(.eyebrow) { max-width:36em; }
  .section-top { margin-bottom:30px; }
  .services .section-top h2 { text-align:left; margin-top:20px; }
  .service-list summary { grid-template-columns:24px minmax(0,1fr) 22px; padding:24px 0; }
  .service-list summary:hover { padding-left:0; padding-right:0; }
  .service-list h3 { font-size:clamp(23px,5.5vw,32px); line-height:1.3; }
  .service-body { margin-left:0; padding-bottom:28px; }
  .service-body a { font-size:13px; }
  .objects { padding-bottom:40px; gap:28px; }
  .objects-copy { padding-inline:24px; }
  .object-photo { margin-inline:24px; }
  .object-photo img { aspect-ratio:4/3; object-fit:cover; }
  .object-photo figcaption { line-height:1.7; font-size:9px; }
  .partners-heading { margin-bottom:28px; }
  .brands .partner-grid { margin-top:0; }
  .brands .partner-art img { transform:scale(.8); transform-origin:center; }
  .partner-link { min-height:132px; padding:18px 8px; }
  .partner-arrow { opacity:1; transform:none; }
  .partner-name { font-size:10px; }
  .quiet-room { height:65svh; min-height:340px; max-height:480px; }
  .quiet-room>p { font-size:clamp(38px,10vw,60px); }
  .steps-heading>p { font-size:16px; margin-top:24px; }
  .steps-grid { gap:28px; }
  .steps-grid li { display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:16px; padding-top:24px; }
  .step-number { grid-column:1; grid-row:1/4; font-size:24px; }
  .steps-grid h3 { grid-column:2; margin:0 0 12px; font-size:22px; }
  .steps-grid p,.step-note { grid-column:2; }
  .steps-grid p { font-size:15px; }
  .step-note { font-size:12px; }
  .contact .eyebrow { line-height:1.8; }
  .contact-copy { padding-top:28px; }
  .contact-mail { min-height:48px; font-size:clamp(18px,5.1vw,28px); align-items:center; }
  .contact-mail .mail-address { white-space:normal; overflow-wrap:anywhere; min-width:0; }
  .contact-channels { gap:8px; margin:22px 0; }
  .whatsapp-link { width:100%; justify-content:space-between; border-radius:4px; min-height:52px; font-size:13px; }
  .contact-phone { min-height:48px; }
  .contact-domain a { display:inline-flex; align-items:center; min-height:44px; }
  .contact-address { gap:16px; font-size:12px; }
  .contact-address a { min-height:44px; display:flex; align-items:center; }
  .footer { gap:22px; }
  .footer-bottom { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  .footer-legal { column-gap:24px; row-gap:4px; }
  .footer-legal a,.footer-legal button { font-size:12px; min-height:44px; }
  .text-link { min-height:48px; }
  .about-intro { padding:40px 24px; }
  .about-intro h1 { font-size:clamp(42px,11vw,68px); line-height:1.12; letter-spacing:-.045em; }
  .about-intro .about-lead { max-width:32em; font-size:19px; }
  .about-portrait { height:auto; aspect-ratio:4/3; }
  .about-portrait figcaption { left:24px; bottom:20px; font-size:12px; }
  .about-process figure { height:auto; aspect-ratio:4/3; }
  .about-prose .about-lead { font-size:20px; }
  .about-process-copy { padding:36px 24px 44px; }
  .about-invitation .text-link { overflow-wrap:anywhere; font-size:clamp(17px,4.8vw,23px); }
  .legal-content h1 { font-size:clamp(34px,9vw,52px); overflow-wrap:anywhere; }
  .legal-content p,.legal-content address { font-size:16px; line-height:1.8; }
  .legal-draft,.storage-note { padding:18px; }
  .cookie-notice { left:max(12px,env(safe-area-inset-left)); bottom:max(12px,env(safe-area-inset-bottom)); border-radius:8px; max-height:calc(100dvh - 24px); }
  .cookie-notice p { font-size:13px; }
  .cookie-notice-actions { gap:8px 20px; }
  .cookie-notice a { min-height:44px; display:inline-flex; align-items:center; }
  .cookie-notice button { min-height:48px; border-radius:4px; }
  a:focus-visible,button:focus-visible,summary:focus-visible { outline-offset:3px; }
}
/* Touch affordances at overlapping tablet/desktop widths: no layout changes. */
@media (min-width:701px) and (pointer:coarse) {
  .site-header nav a { position:relative; }
  .site-header nav a::before { content:""; position:absolute; inset:50% 0 auto; height:44px; transform:translateY(-50%); }
  .partner-arrow { opacity:1; transform:none; }
}
@media (max-width:700px) and (prefers-reduced-motion:reduce) {
  .site-header nav.is-open { animation:none; }
  .reveal,.photo-reveal { opacity:1; transform:none; clip-path:none; }
}
/* Mobile: keep the video control hidden; music remains user-controllable. */
@media (max-width:700px) {
  .hero .motion-control { display:none; }
}
/* Preserve readable reflow when text is enlarged independently of the viewport. */
@media (max-width:700px) {
  h1,h2,h3,p,.step-note,.partner-name { overflow-wrap:anywhere; }
  .title-line { overflow:visible; }
  .service-list summary { grid-template-columns:24px minmax(0,1fr) auto; }
  .plus { min-width:1.5em; text-align:center; }
}

/* Mobile-only music control: compact circle, accessible name retained. */
@media (max-width:700px) {
  .music-control { width:44px; height:44px; min-height:44px; padding:0; gap:0; border-radius:50%; box-sizing:border-box; }
  .music-control .music-label { display:none; }
}
