/* CMP responsive layout repair, 2026-11-05.
   Scope excludes standalone IAN .hd / office UI. Keep links, controls, text and branding. */
header.logo_part > .wrap {
  box-sizing:border-box;
  width:calc(100% - 40px);
  max-width:1500px;
  margin-left:auto!important;
  margin-right:auto!important;
  gap:16px;
}
header.logo_part > .wrap > .cmp-brand-identity { min-width:0; }
header.logo_part > .wrap > .user { min-width:0; }
header.logo_part > .wrap > .user > .lang { margin:0!important; flex:0 0 auto; }
header.logo_part > .wrap > .user > .cmp-lang-dd > summary { white-space:nowrap; }
/* Tablet landscape: navigation may take its own row instead of forcing overflow. */
@media (min-width:1025px) and (max-width:1200px) {
  header.logo_part > .wrap { flex-wrap:wrap!important; }
  header.logo_part > .wrap > ul { order:3; flex:1 0 100%; justify-content:center; flex-wrap:wrap; gap:12px 24px; }
  header.logo_part > .wrap > ul > li { margin:0; }
}
@media (max-width:1024px) {
  header.logo_part > .wrap { display:grid!important; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
  header.logo_part > .wrap > .user { justify-content:flex-end; }
}
/* Full controls do not fit alongside the approved logo at phone widths.
   Use a deliberate second control row, rather than scaling or hiding content. */
@media (max-width:600px) {
  header.logo_part > .wrap { grid-template-columns:minmax(0,1fr); gap:8px; padding-top:12px; padding-bottom:12px; }
  header.logo_part > .wrap > .cmp-brand-identity { width:185px; max-width:100%; min-width:0; flex:0 0 auto; }
  header.logo_part > .wrap > .cmp-brand-identity > .logo { width:185px; max-width:100%; }
  header.logo_part > .wrap > .cmp-brand-identity > .logo img { width:185px; max-width:100%; height:auto; object-fit:contain; }
  .cmp-root-home header.logo_part > .wrap > .cmp-brand-identity { width:205px; max-width:100%; }
  .cmp-root-home header.logo_part > .wrap > .cmp-brand-identity > .logo,
  .cmp-root-home header.logo_part > .wrap > .cmp-brand-identity > .logo img { width:205px; max-width:100%; }
  /* Verified source order: payment, IAN, language, menu. Request-call is hidden by existing mobile CSS. */
  header.logo_part > .wrap > .user { display:grid!important; width:100%; grid-template-columns:40px minmax(0,1fr) 44px 44px; gap:8px; align-items:center; }
  header.logo_part > .wrap > .user > .cmp-hdr-pay { grid-column:1; }
  header.logo_part > .wrap > .user > .cmp-ianbtn { grid-column:2; }
  header.logo_part > .wrap > .user > .lang { grid-column:3; }
  header.logo_part > .wrap > .user > .menu { grid-column:4; }
  header.logo_part > .wrap > .user > .cmp-ianbtn .l { display:inline; }
  header.logo_part > .wrap > .user > .cmp-ianbtn { display:block; text-align:center; padding:8px 12px!important; font-size:14px!important; white-space:normal; line-height:1.2; min-width:0; min-height:44px; margin:0!important; max-width:100%; box-sizing:border-box; }
  /* Match hero heading to kicker/description: legacy rule adds 20px side margin. */
  .cmp-city-home header.logo_part .calc_part .text_part h1 { margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
  .cmp-city-home-messengers { width:100%; min-width:0; max-width:100%; }
  /* Fixed icon row is 288px; allow wrapping below that instead of overflowing. */
  :is(.cmp-city-page,.cmp-root-home) .cmp-contact-links .cmp-ic-row { flex-wrap:wrap; }
  :is(.cmp-city-page,.cmp-root-home) .cmp-contact-links .cmp-tgshop-btn { white-space:normal; height:auto!important; min-height:48px; }
  :is(.cmp-city-page,.cmp-root-home) .cmp-tgshop-txt { min-width:0; line-height:1.3; }
  /* Destination navigation is links, not functional tabs. Preserve every link. */
  .cmp-city-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; }
  .cmp-city-nav a { min-width:0; white-space:normal; overflow-wrap:anywhere; }
}

/* The six footer channels must remain usable on very narrow screens. */
@media (max-width: 600px) {
  .cmp-socials.socials { max-width: 100%; flex-wrap: wrap; }
}
