/* Smartphone presentation only. No desktop/tablet rules, content or saved styles. */
@media (max-width:767px) {
  html { scroll-padding-top:88px; }
  main .container,main .narrow { width:calc(100% - 32px)!important; min-width:0; }
  main :is(h1,h2,h3) { overflow-wrap:anywhere; hyphens:auto; }
  main h1 { font-size:clamp(1.8rem,8.1vw,2.8rem)!important; line-height:1.16!important; }
  main .hero h1 { font-size:clamp(1.9rem,8.5vw,2.9rem)!important; line-height:1.16!important; }
  main .lead { font-size:1rem!important; line-height:1.65!important; }
  main :is(p,li,blockquote) { overflow-wrap:break-word; }
  main .hero-kicker { gap:7px; margin-bottom:18px; }
  main .hero-kicker .chip { min-height:44px; padding:9px 12px; }
  main .hero-copy { padding:18px!important; }
  main .page-hero { padding-block:24px!important; }
  main .page-hero>.container.csb-surface-custom { padding:18px!important; }
  main .section-heading { margin-bottom:20px!important; }
  main .section-heading p { margin-bottom:0; }

  /* One clear action per line, with room for fingers and longer German labels. */
  main :is(.page-hero,.config-hero,.csb-google-profile) .actions,
  .review-library-actions { display:flex!important; flex-direction:column; gap:10px!important; align-items:stretch!important; }
  main :is(.page-hero,.config-hero,.csb-google-profile) .actions .btn,
  .review-library-actions .btn { width:100%; }
  main .btn { min-height:48px; padding:12px 16px; touch-action:manipulation; }
  main :is(button,input,select,textarea,a) { scroll-margin-top:90px; scroll-margin-bottom:110px; }
  main input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  main select,main textarea { font-size:16px!important; line-height:1.5; border-radius:12px; }
  main textarea { min-height:150px; }
  main input[type=file] { min-height:52px; padding:8px; }
  main input[type=file]::file-selector-button { min-height:36px; max-width:100%; white-space:normal; font:inherit; }
  main .service-choice { min-height:48px; padding:10px 12px; align-items:center; }

  /* Put the inquiry form first on phones; business details remain directly below. */
  .contact-grid>section:has(form) { order:-1; }
  .contact-grid>aside { padding-top:16px; border-top:1px solid #293640; }
  .contact-grid .contact-item { min-width:0; gap:12px; }
  .contact-grid .contact-item a { font-size:.94rem; overflow-wrap:anywhere; }

  /* The expanded menu scrolls independently; floating tools cannot cover it. */
  .csb-navigation .site-nav { max-height:calc(100dvh - 96px - env(safe-area-inset-bottom))!important; padding-bottom:calc(12px + env(safe-area-inset-bottom))!important; }
  .csb-navigation .site-nav>a,.csb-navigation .csb-nav-group>summary,
  .csb-navigation .csb-nav-sub>a { min-height:48px; display:flex; align-items:center; overflow-wrap:break-word; }
  .csb-navigation .csb-nav-group>summary { justify-content:space-between; gap:12px; }
  .csb-navigation .csb-nav-group>summary::after { content:''; width:7px; height:7px; flex:none; margin-left:auto; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); opacity:.75; }
  .csb-navigation .csb-nav-group[open]>summary::after { transform:rotate(225deg); }
  html:has(.site-nav.open) { overflow:hidden; }
  body:has(.site-nav.open) :is(.chat-launcher,.csb-project-draft) { visibility:hidden; }
  .csb-navigation .brand img { max-height:38px; object-fit:contain; }

  /* Existing photographs, sources and focal positions are retained. */
  main :is(img,video,iframe) { max-width:100%; }
  .csb-profile-photos img:first-child { height:clamp(170px,55vw,230px); }
  .csb-profile-photos img:not(:first-child) { height:clamp(105px,32vw,145px); }
  .csb-google-profile { padding:18px; border-radius:18px; }
  [data-map-frame],.csb-google-profile .map-card { min-height:260px; }
  [data-map-frame] iframe,.map-frame iframe { height:clamp(260px,75vw,340px)!important; }
  .review-library-toolbar { gap:14px; }
  .review-library-toolbar :is(input,select) { min-height:48px; }
  .review-library-card { padding:18px!important; }
  .review-library-card blockquote { font-size:.95rem!important; line-height:1.65!important; }
  .review-library-card>a { display:inline-flex; align-items:center; min-height:44px; }
  .review-track { scroll-snap-type:x proximity; overscroll-behavior-x:contain; }
  .review-track .review-card { scroll-snap-align:start; }
  .csb-vision img { height:auto; }

  .chat-window { max-height:calc(100dvh - 158px)!important; border-radius:18px; }
  .chat-window :is(input,textarea) { font-size:16px!important; }
  .chat-form button { min-height:44px; }
  .consent-actions .btn { min-height:48px; }
  .footer-grid a { min-height:44px; display:flex; align-items:center; }
  .footer-bottom a,.footer-bottom button { display:inline-flex; align-items:center; min-height:44px; }
}

@media (max-width:420px) {
  /* Avoid "Ambientebeleu / chtung" in narrow two-column service tabs. */
  .config-tabs { display:grid!important; grid-template-columns:minmax(0,1fr)!important; gap:7px!important; padding:6px!important; }
  .config-tabs>button { display:grid!important; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:10px; min-height:58px!important; padding:10px!important; text-align:left; }
  .config-tabs>button>span { font-size:.68rem!important; line-height:1.4; letter-spacing:0; text-transform:none!important; overflow-wrap:normal; word-break:normal; }
  .config-tabs>button>strong { font-size:.86rem!important; line-height:1.4; overflow-wrap:normal; word-break:normal; hyphens:auto; }
  .config-tabs>button.active { box-shadow:inset 3px 0 #36d4c8; }
  .config-stage,.config-mode-picker,.config-summary-card,.dc-summary { padding:16px!important; }
}

@media (max-width:359px) {
  /* Keep the actual logo readable while preserving the labelled inquiry link. */
  .csb-navigation .header-quick-cta { flex:0 0 44px; width:44px; padding:0; font-size:0!important; }
  .csb-navigation .header-quick-cta::after { content:'✉'; font:22px/1 system-ui; }
  .csb-navigation .header-inner { gap:8px; }
  .csb-project-draft>summary { font-size:.74rem; }
}
