/* Cluster VTOA 1.5.64. Responsive enhancement for public portal and existing member workspaces.
   Same content and URLs at every viewport. Avoid replacing business logic or page templates. */

:root { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.site-header, .site-footer, main, .cv14-wrap { max-width: 100%; }
main, main > section, .article-body, .detail-grid > *, .archive-grid > *,
.project-grid > *, .cv-news-list > *, .cv14-wrap .cv143-main { min-width: 0; }
.article-body, .cv14-wrap, .cv-project-description,
.cv-news-summary, .cv-company-body { overflow-wrap: anywhere; }
.article-body img, .cv14-wrap img, .content img { max-width:100%; height:auto; }
.article-body iframe, .article-body video, .cv14-wrap iframe,
.cv14-wrap video { max-width:100%; }
:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #1675b5;
  outline-offset: 3px;
}

@media (max-width: 1050px) {
  .archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .detail-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .detail-side .sidebox { position: static; }
  .footer-top { gap: 24px; }
  /* The filter area must not require a wide screen or a mouse. */
  .directory-filters, .cv-news-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .directory-filters button, .cv-news-filters button { grid-column: 1 / -1; }
}

@media (max-width: 740px) {
  .shell, .container { padding-inline: 17px; }
  .content-header { padding: 30px 0 25px; }
  .content-header h1 { font-size: clamp(25px,6vw,36px); line-height: 1.2; }
  .content { padding: 24px 0 47px; }
  .article-body { font-size: 15px; line-height: 1.65; }
  .article-body h2 { font-size: clamp(20px,5.2vw,26px); line-height: 1.26; }
  .article-body h3 { font-size: 19px; }
  .detail-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 21px; }
  .detail-side .sidebox { padding: 18px; }
  .archive-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .archive-grid .card { min-height: 0; padding: 17px; }
  .directory-filters, .cv-news-filters { grid-template-columns: minmax(0,1fr); padding:14px; }
  .directory-filters button, .cv-news-filters button { grid-column: auto; min-height: 46px; }
  .cv-news-card { grid-template-columns: minmax(0,1fr); }
  .cv-news-picture { min-height: 150px; max-height:230px; }
  .cv-news-summary { padding: 17px; }
  .cv-news-summary h2 { font-size: 20px; }
  .cv-sector-intro { display:block; padding:14px; }
  .cv-sector-intro strong { display:block; margin-bottom:6px; }
  .member-panel, .triple-section, .footer-top { grid-template-columns: minmax(0,1fr); }
  .triple-card { min-height: 170px; padding:24px 19px; }
  .footer-top > div:first-child { grid-column: auto; }
  .cv-v10-coop-row, .cv-support-item { min-width: 0; }
  .meta-dl { grid-template-columns: minmax(0,1fr); gap:4px; }
  .cv1544-spec-scroll { max-width:100%; }

  /* Mobile masthead: brand + action row + readable language strip. */
  .site-header .header-inner,
  body.cvr-preview-home .site-header .header-inner {
    display:flex; flex-wrap:wrap; align-content:center; align-items:center;
    height:auto; min-height:68px; padding-block:9px; gap:7px 10px;
  }
  .site-header .header-inner > .brand,
  body.cvr-preview-home .site-header .brand {
    flex:1 1 0; order:1; width:auto; max-width:100%; min-width:0;
  }
  .site-header .cv141-wordmark { min-width:0; overflow:hidden; }
  .site-header .cv141-wordmark small { white-space:normal; line-height:1.2; }
  .site-header .nav-toggle,
  body.cvr-preview-home .site-header .nav-toggle {
    display:flex; flex:0 0 44px; order:2; margin:0;
    width:44px; height:44px; justify-content:center; align-items:center;
    border-radius:4px; cursor:pointer;
  }
  .site-header .header-actions,
  body.cvr-preview-home .site-header .header-actions { display:contents; }
  .site-header .cv13-search-widget { order:3; flex:0 0 auto; }
  .site-header .cv13-search-toggle { width:44px; height:44px; display:grid; place-items:center; }
  .site-header .cv142-cabinet-link {
    order:4; flex:0 0 44px; width:44px; height:44px; padding:0;
    display:flex; align-items:center; justify-content:center; border-radius:4px;
  }
  .site-header .cv142-cabinet-link span { display:none; }
  .site-header .header-cta { display:none; }
  /* All eight languages remain visible on phones. The previous horizontal
     flex row inherited width:100% for each link and justify-content:flex-end,
     leaving only the final DE button in view on iOS Safari. */
  .site-header .cv158-lang-switch,
  body.cvr-preview-home .site-header .cv158-lang-switch {
    order:5; flex:1 1 100%; display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    justify-content:stretch; justify-items:stretch; align-items:stretch;
    width:100% !important; min-width:0 !important; max-width:100% !important;
    height:auto; padding:8px 0 2px; gap:5px 6px;
    overflow:visible; white-space:normal; direction:ltr;
    border-top:1px solid #e7eef3;
  }
  .site-header .cv158-lang-switch a,
  .site-header .cv158-lang-switch a[lang="ar"],
  .site-header .cv158-lang-switch a[lang="fa"],
  .site-header .cv158-lang-switch a[lang="zh-Hans"] {
    box-sizing:border-box; display:flex; flex:none;
    width:100%; max-width:100%; min-width:0; min-height:42px;
    justify-content:center; align-items:center;
    padding:7px 4px; font-size:12px; line-height:1.25;
    text-align:center; letter-spacing:0; white-space:nowrap;
    border:1px solid #dce7ef; border-radius:4px; background:#f3f7fa;
  }
  .site-header .cv158-lang-switch a.active {
    background:#e5f1fa; border-color:#9dc1d9; color:#092644;
  }
  .site-header .mainnav,
  body.cvr-preview-home .site-header .mainnav {
    display:none; position:absolute; top:100%; inset-inline:0;
    max-height:calc(100vh - 118px); max-height:calc(100dvh - 118px);
    overflow-y:auto; overscroll-behavior:contain; z-index:150;
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:0; padding:8px 17px 14px; background:#fff;
    box-shadow:0 15px 25px rgba(12,40,64,.18);
  }
  .site-header .mainnav.opened,
  body.cvr-preview-home .site-header .mainnav.opened { display:flex; }
  .site-header .mainnav a,
  body.cvr-preview-home .site-header .mainnav a {
    display:flex; align-items:center; width:100%; white-space:normal;
    font-size:15px; line-height:1.4; min-height:46px;
    padding:11px 4px; border-bottom:1px solid #e9eff4;
  }
  .site-header .mainnav .cv153-mobile-join { font-weight:750; color:#126da9; }
  .site-header .cv13-search-panel { max-width:calc(100vw - 34px); }

  /* Existing member workspaces remain the same, but with full-width forms. */
  .cv14-wrap { padding:20px 14px 52px; }
  .cv14-wrap .cv143-layout { display:block; }
  .cv14-wrap .cv143-side { position:static; margin-bottom:17px; }
  .cv14-wrap .cv143-main,
  .cv14-wrap .cv142-dashboard-grid > *, .cv14-wrap .cv145-dashboard-grid > * { min-width:0; }
  .cv14-wrap .cv143-form-grid, .cv14-wrap .cv144-meeting-form,
  .cv14-wrap .cv142-dashboard-grid, .cv14-wrap .cv145-dashboard-grid {
    grid-template-columns:minmax(0,1fr);
  }
  .cv14-wrap :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    max-width:100%; min-width:0; font-size:16px;
  }
  .cv14-wrap :is(button, .cv14-btn, input[type="submit"], input[type="button"]) { min-height:44px; }
  .cv14-wrap .cv143-side :is(a,button) { min-height:42px; }
  .cv14-wrap :is(.cv142-primary-nav, .cv142-secondary-nav) { flex-wrap:wrap; }
}

@media (max-width: 460px) {
  .shell, .container { padding-inline:14px; }
  .site-header .header-inner { gap:6px; }
  .site-header .cv141-symbol { width:45px; min-width:45px; }
  .site-header .cv141-symbol img { max-width:45px; height:auto; }
  .site-header .cv141-wordmark { max-width:152px; }
  .site-header .nav-toggle { flex-basis:42px; width:42px; }
  .site-header .cv13-search-toggle { width:42px; }
  .site-header .cv142-cabinet-link { flex-basis:42px; width:42px; }
  .site-header .cv158-lang-switch { gap:3px; }
  .content-header h1 { font-size:26px; }
  .article-body { font-size:15px; }
  .cv14-wrap { padding-inline:11px; }
  .cv14-wrap .cv142-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .cv14-wrap :is(.cv142-dashboard-card, .cv143-main .card) { padding:15px; }
  .cv14-wrap .cv142-item { flex-wrap:wrap; }
  .cv14-wrap .cv142-inline-link { max-width:100%; }
}

/* Wide tables remain usable by swiping instead of forcing body-wide scrolling. */
@media (max-width: 740px) {
  :is(.article-body, .cv14-wrap, .cv1544-spec-scroll, .cv157-reading) table {
    display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
  }
  :is(.article-body, .cv14-wrap) :is(pre, code) { white-space:pre-wrap; overflow-wrap:anywhere; }
  :is(.enquiry-form, .directory-filters, .cv-news-filters) :is(input,textarea,select) {
    min-width:0; max-width:100%; font-size:16px;
  }
  :is(.enquiry-form, .directory-filters, .cv-news-filters) :is(button,input[type="submit"]) { min-height:44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .sector-tile, .news-card, .project-card, .btn { transition:none; }
}

/* v1.5.69. Compact two-tier mobile header and accessible language dropdown.
   Desktop header and all eight language URLs remain unchanged. */
.cv169-lang-picker { display:none; }
@media (max-width:740px) {
  .site-header .header-inner,
  body.cvr-preview-home .site-header .header-inner,
  body.cvp-current-portal .site-header .header-inner {
    display:grid;
    grid-template-columns:minmax(0,1fr) repeat(3,40px);
    grid-template-rows:minmax(49px,auto) 42px;
    align-items:center;align-content:center;
    column-gap:7px;row-gap:8px;
    height:auto;min-height:0;padding-top:10px;padding-bottom:10px;
    position:relative;
  }
  .site-header .header-inner > .brand,
  body.cvr-preview-home .site-header .brand,
  body.cvp-current-portal .site-header .brand {
    grid-column:1;grid-row:1;justify-self:start;
    min-width:0;max-width:100%;width:auto;
    margin:0;order:initial;overflow:hidden;
  }
  .site-header .header-actions,
  body.cvr-preview-home .site-header .header-actions,
  body.cvp-current-portal .site-header .header-actions { display:contents; }
  .site-header .nav-toggle,
  body.cvr-preview-home .site-header .nav-toggle,
  body.cvp-current-portal .site-header .nav-toggle {
    grid-column:2;grid-row:1;justify-self:stretch;
    display:flex;align-items:center;justify-content:center;
    width:40px;min-width:0;height:40px;min-height:40px;
    flex:none;margin:0;order:initial;
  }
  .site-header .cv13-search-widget {grid-column:3;grid-row:1;justify-self:stretch;margin:0;order:initial;}
  .site-header .cv13-search-toggle {width:40px;min-width:0;height:40px;min-height:40px;}
  .site-header .cv142-cabinet-link {
    grid-column:4;grid-row:1;justify-self:stretch;
    width:40px;min-width:0;height:40px;min-height:40px;
    flex:none;margin:0;order:initial;
  }
  .site-header .cv158-lang-switch,
  body.cvr-preview-home .site-header .cv158-lang-switch {display:none !important;}
  .site-header .header-cta,
  body.cvr-preview-home .site-header .header-cta,
  body.cvp-current-portal .site-header .header-cta {
    grid-column:1 / 3;grid-row:2;justify-self:start;
    display:inline-flex !important;align-items:center;justify-content:center;
    width:auto;max-width:100%;height:42px;min-height:42px;
    margin:0;padding:0 15px;border-radius:4px;
    background:#092644;color:#fff;
    font-size:12px;line-height:1.2;font-weight:750;
    white-space:nowrap;order:initial;
  }
  .site-header .header-cta span {font-size:15px;line-height:1;}
  .site-header .cv169-lang-picker {
    grid-column:3 / 5;grid-row:2;justify-self:end;
    display:block;position:relative;min-width:0;margin:0;
    font-size:12px;color:#123a59;direction:ltr;z-index:160;
  }
  .site-header .cv169-lang-picker summary {
    list-style:none;display:flex;align-items:center;justify-content:center;
    gap:8px;width:91px;height:42px;padding:0 9px;
    border:1px solid #c9dbe8;border-radius:4px;
    background:#f5f9fc;cursor:pointer;user-select:none;
    color:#153c5d;font-size:12px;font-weight:750;
  }
  .site-header .cv169-lang-picker summary::-webkit-details-marker {display:none;}
  .site-header .cv169-lang-picker summary::marker{content:'';}
  .site-header .cv169-lang-picker[open] summary {background:#eaf3f9;border-color:#7daccb;}
  .site-header .cv169-lang-picker[open] .cv169-chevron {transform:rotate(180deg);}
  .site-header .cv169-lang-options {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px;position:absolute;inset-inline-end:0;top:calc(100% + 7px);
    width:min(244px,calc(100vw - 28px));max-height:min(60vh,460px);
    overflow-y:auto;padding:8px;border:1px solid #d7e5ee;
    background:#fff;box-shadow:0 12px 27px rgba(10,39,66,.19);
    border-radius:6px;z-index:200;direction:ltr;
  }
  .site-header .cv169-lang-options a {
    display:flex;min-width:0;min-height:47px;align-items:center;justify-content:center;
    flex-direction:column;gap:1px;padding:5px 6px;border:1px solid transparent;
    border-radius:4px;background:#f5f8fb;color:#173c59;
    line-height:1.2;text-decoration:none;
  }
  .site-header .cv169-lang-options a span {font-size:13px;font-weight:750;}
  .site-header .cv169-lang-options a small {font-size:10px;color:#6b8192;font-weight:450;}
  .site-header .cv169-lang-options a.active {
    border-color:#9fc4dd;background:#e6f2f9;color:#092b49;
  }
  .site-header .cv169-lang-options a:hover,
  .site-header .cv169-lang-options a:focus-visible {border-color:#79aacc;background:#edf6fb;}
  /* Dropdown in RTL pages still opens on the physical right of the action row. */
  :is(html[lang="ar"],html[lang="fa"]) .site-header .cv169-lang-picker {direction:ltr;}
}
@media(max-width:360px){
  .site-header .header-inner,
  body.cvr-preview-home .site-header .header-inner {grid-template-columns:minmax(0,1fr) repeat(3,38px);column-gap:5px;}
  .site-header .nav-toggle,body.cvr-preview-home .site-header .nav-toggle,
  .site-header .cv13-search-toggle,.site-header .cv142-cabinet-link {width:38px;height:38px;}
  .site-header .header-cta {padding:0 10px;font-size:11px;}
}
