/* September review: shared controls and separately composed mobile layouts. */
@media (max-width:600px) {
  /* Keep narrow maps legible; selecting a province exposes its full count. */
  .v4-body .v4-home-map .v4-map-province-count { display:none; }
}
.v4-body { --v4-flower-pattern-size:1080px; }
/* Hide V4 scrollbars without changing native scrolling or scene snapping. */
html:has(body.v4-body),body.v4-body,body.v4-body * { scrollbar-width:none!important; }
html:has(body.v4-body)::-webkit-scrollbar,body.v4-body::-webkit-scrollbar,body.v4-body *::-webkit-scrollbar { display:none!important; }
.v4-body .v4-about-brand-copy { display:none; }
.v4-body .v4-module-appearance--sections { background:#fff; border-radius:16px; padding:16px clamp(18px,3vw,44px); box-shadow:var(--v4-surface-shadow); }
.v4-body .v4-module-appearance--sections>.v4-module-grid { gap:0; margin:0; }
.v4-body .v4-module-appearance--sections>.v4-module-grid>.v4-module { grid-column:1/-1; margin:0; }
.v4-body .v4-module-appearance--sections .v4-panel { box-shadow:none; border:0; border-radius:0; margin:0; overflow:visible; }
.v4-body .v4-module-appearance--sections .v4-section-title { background:none; color:var(--red); text-align:left; padding:24px 0 14px; border-bottom:1px solid #e8d8dc; font-weight:600; }
.v4-body .v4-module-appearance--sections .v4-prose { padding:20px 0 28px; font-size:var(--module-body-size,16px); font-weight:400; }
.v4-body .v4-module-appearance--sections [data-block="about-strategy"] ol { display:block; padding-left:1.4em; list-style:decimal; }
.v4-body .v4-module-appearance--sections [data-block="about-strategy"] li { display:list-item; min-height:0; padding:6px 0; border:0; border-radius:0; color:inherit; box-shadow:none; background:none; text-align:left; font-weight:400; }
.v4-body .v4-module-appearance--sections [data-block="about-strategy"] :is(ol,li):before { display:none; }
.v4-body .v4-module-links>a { min-height:56px; display:flex; align-items:center; justify-content:center; gap:14px; background:#fff; color:var(--red); border:1px solid #f0e4e7; border-radius:10px; padding:16px 20px; font:500 var(--module-body-size,17px)/1.6 var(--v4-ui-font); }
.v4-body .v4-module-links>a:hover { background:#fff5f7; }
.v4-body .v4-module-links>a>img { width:32px; height:32px; object-fit:contain; flex:none; }
.v4-shortcut-icon { display:inline-grid; place-items:center; width:30px; height:30px; font-size:25px; flex:none; }
.v4-roster-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.v4-roster-heading h3 { margin:0; }
.v4-roster-heading button { background:none; border:0; color:var(--red); min-height:44px; font:inherit; cursor:pointer; }
.v4-body .v4-dialog-header { position:relative; min-height:56px; padding:0; display:flex; align-items:center; }
.v4-body .v4-dialog .v4-dialog-header>.v4-section-title { flex:1; min-width:0; margin:0; padding:14px 60px; border:0; text-align:center; line-height:1.5; }
.v4-body .v4-dialog-close { right:6px; width:44px; height:44px; background:transparent; border:0; border-radius:8px; box-shadow:none; -webkit-appearance:none; }
.v4-body .v4-dialog-close>svg { width:20px; height:20px; }
.v4-person-detail { display:inline-flex; gap:12px; align-items:center; min-height:44px; color:var(--red); font-size:14px; }
.v4-body .v4-org-departments { gap:0; }
.v4-body .v4-org-departments>.v4-org-node { margin:0 7px; }
.v4-body .v4-org-departments:before { top:-20px; }
.v4-body .v4-org-departments>.v4-org-node:before { height:22px; top:-22px; }
.v4-body .v4-journey-year>header { justify-content:center; }
.v4-map-count-list { display:none; }
.v4-body .v4-module-articles>.v4-list-search { justify-content:flex-end; }
.v4-directory-toolbar { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:20px 24px; }
.v4-document-panel[id^="directory-"] { scroll-margin-top:100px; }
.v4-directory-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 14px; min-width:0; }
.v4-directory-heading h2 { margin:0; font-size:18px; font-weight:600; line-height:1.5; }
.v4-directory-heading>span { color:#8a7b80; font-size:13px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.v4-directory-search { display:grid; grid-template-columns:minmax(120px,200px) minmax(120px,160px) auto; align-items:center; gap:12px; margin:0; padding:0; }
.v4-directory-search label { display:block; min-width:0; font-size:14px; }
.v4-directory-search :is(input,select) { width:100%; min-width:0; max-width:100%; height:44px; border:1px solid #e7e0e2; border-radius:8px; background:#faf8f9; padding:8px 12px; font:inherit; }
.v4-directory-search :is(input,select):focus { background:#fff; }
.v4-directory-search .v4-action { white-space:nowrap; }
.v4-directory-results { padding:0 24px 24px; }
.v4-directory-results table { width:100%; border-collapse:collapse; table-layout:fixed; }
.v4-directory-results :is(th,td) { padding:16px; text-align:left; border-bottom:1px solid #eee5e8; overflow-wrap:anywhere; }
.v4-directory-results th { background:#fff4f6; font-weight:600; }
.v4-directory-results>.v4-pagination { margin:24px 0 0; gap:16px 24px; }
.v4-scene-dots { position:fixed; right:14px; top:50%; transform:translateY(-50%); z-index:35; display:flex; flex-direction:column; }
.v4-scene-dots button { width:32px; height:32px; display:grid; place-items:center; border:0; padding:0; background:transparent; cursor:pointer; }
.v4-scene-dots button>span { width:6px; height:6px; border-radius:50%; background:#a3838b; box-shadow:0 0 0 2px #ffffffb3; }
.v4-scene-dots button[aria-current="true"]>span { background:var(--red); width:8px; height:8px; }
.v4-scene-dots button:focus-visible { outline:2px solid var(--red); outline-offset:2px; border-radius:50%; }
/* Center the complete copy group within the slide below the fixed header. */
.v4-body .v4-home .v4-home-hero-copy { top:50%; bottom:auto; transform:translateY(-50%); }
.v4-body .v4-home .v4-home-hero-copy h1 { font-size:var(--module-title-size,clamp(36px,3.2vw,60px)); }
.v4-body .v4-home .v4-home-hero-copy>p { font-size:var(--module-body-size,clamp(21px,1.9vw,34px)); }
.v4-body .v4-home .v4-home-hero-copy .v4-pill { min-height:48px; font-size:18px; padding:12px 30px; }
.v4-body .v4-home [data-module-id="mission-project-links"] { grid-column:1/-1; align-self:start; }
.v4-body .v4-home [data-module-id="mission-project-links"] .v4-module-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.v4-body .v4-home .v4-story-banner { position:relative; width:100%; }
.v4-body .v4-home .v4-story-banner>picture { position:absolute; inset:0; display:block; }
.v4-body .v4-home .v4-story-banner>picture>img,.v4-body .v4-home .v4-story-banner>img { width:100%; height:100%; object-fit:cover; }
.v4-body .v4-home .v4-story-banner>div { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; height:100%; padding-block:24px; }
.v4-body .v4-home .v4-story-heading { font-size:var(--module-title-size,clamp(26px,2.3vw,42px)); line-height:1.7; }
.v4-body .v4-home .v4-story-banner .v4-pill { min-height:46px; font-size:16px; }
.v4-body .v4-footer-inner { padding-block:32px 20px; }
.v4-body .v4-footer-bottom { padding-top:20px; }
/* Mission artwork uses the supplied brand flowers. Keep all decoration below
   editable content and inside the scene, including in saved home layouts. */
.v4-body .v4-home .v4-home-mission {
  isolation:isolate;
  background:#fffaf5;
}
.v4-body .v4-home .v4-home-mission::before,
.v4-body .v4-home .v4-home-mission::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}
.v4-body .v4-home .v4-home-mission::before {
  z-index:-2;
  background:
    radial-gradient(ellipse at 46% 42%,#fffdfaf2 0%,#fffdfa99 36%,transparent 69%),
    radial-gradient(ellipse at 2% 98%,#f8dce2 0%,transparent 48%),
    radial-gradient(ellipse at 100% 8%,#fff0cb 0%,transparent 49%),
    radial-gradient(ellipse at 90% 110%,#fce6db 0%,transparent 50%);
}
.v4-body .v4-home .v4-home-mission::after {
  z-index:-1;
  opacity:.19;
  background-image:url('/static/v4/mission-flower-red.png'),url('/static/v4/mission-flower-yellow.png'),url('/static/img/v3r-brand-flower.webp');
  background-repeat:no-repeat;
  background-size:clamp(300px,30vw,530px) auto,clamp(210px,21vw,370px) auto,64px auto;
  background-position:left -160px bottom -165px,right -100px top 90px,44% 15%;
}
.v4-body .v4-home .v4-home-mission>.v4-mission-flower { display:none; }
@media(min-width:1200px) and (pointer:fine) {
  .v4-body .v4-home .v4-home-hero-copy--right { left:auto; right:6%; width:40%; max-width:none; }
  html.v4-scene-mode .v4-body .v4-home-mission { align-content:center; row-gap:28px; padding-top:calc(var(--v4-header-height,80px) + 24px); }
  .v4-body .v4-home .v4-home-mission,
  html.v4-scene-mode .v4-body .v4-home .v4-home-mission { width:100%; max-width:none; padding-inline:8%; }
  .v4-body .v4-home-impact .v4-impact-metrics strong { font-size:clamp(25px,2.1vw,36px); }
  .v4-body .v4-home-impact .v4-impact-metrics p { font-size:15px; }
}
@media(max-width:1199px),(pointer:coarse) {
  .v4-body .v4-home .v4-home-mission::after {
    opacity:.14;
    background-size:260px auto,185px auto,38px auto;
    background-position:left -165px bottom -65px,right -98px top 12px,78% 73%;
  }
  .v4-body .v4-home .v4-home-mission { gap:20px; }
  .v4-body .v4-home .v4-mission-copy h2 { font-size:var(--module-title-size,24px); }
  .v4-body .v4-home .v4-mission-copy h3 { font-size:var(--module-title-size,20px); margin:16px 0 10px; }
  .v4-body .v4-home .v4-mission-copy ul { margin-bottom:0; }
  .v4-body .v4-home .v4-home-metrics { padding-top:20px; gap:16px; }
  .v4-body .v4-home .v4-home-metrics>div:first-child strong { font-size:clamp(32px,9vw,46px); }
  /* The photograph meets the fixed header; compact lanes move independently. */
  .v4-body .v4-home .v4-scene.v4-home-stories { gap:16px; justify-content:flex-start; padding-top:0; padding-bottom:calc(20px + env(safe-area-inset-bottom,0px)); }
  .v4-body .v4-home .v4-story-banner { display:flex; flex-direction:column; flex:1 0 auto; min-height:0; }
  .v4-body .v4-home .v4-story-heading { font-size:var(--module-title-size,22px); margin-bottom:12px; }
  .v4-scene-dots { display:none; }
  .v4-body .v4-home-map .v4-map-province-name { font-size:21px; }
  .v4-body .v4-home-map .v4-map-province-count { font-size:16px; }
  .v4-map-controls, .v4-map-count-list { display:none; }
  /* Give spare scene height to the photograph, not blank space under the cards. */
  .v4-body .v4-home .v4-story-banner>picture { position:relative; inset:auto; flex:1 0 clamp(140px,21svh,200px); min-height:140px; height:auto; display:block; overflow:hidden; }
  .v4-body .v4-home .v4-story-banner>picture>img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:center 35%; }
  .v4-body .v4-home .v4-story-banner>img { position:static; flex:1 0 clamp(140px,21svh,200px); width:100%; height:0; min-height:140px; aspect-ratio:auto; object-fit:cover; object-position:center 35%; }
  .v4-body .v4-home .v4-story-banner::after { display:none; }
  .v4-body .v4-home .v4-story-banner>div { position:static; flex:none; height:auto; margin:0; padding:16px 20px 8px; align-items:center; }
  .v4-body .v4-home .v4-story-track { display:flex; flex:none; gap:12px; padding:0 0 12px; }
  .v4-body .v4-home .v4-story-track--rows { flex-direction:column; overflow:visible; }
  .v4-story-lane { display:flex; width:100%; gap:12px; padding-inline:16px; overflow-x:auto; overflow-y:hidden; scroll-padding-inline:16px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .v4-story-lane::-webkit-scrollbar { display:none; }
  .v4-story-lane.is-looping { scroll-snap-type:none; scroll-behavior:auto; }
  .v4-body .v4-home .v4-story-card { flex:0 0 min(72vw,290px); height:104px; min-height:104px; min-width:0; border-radius:10px; }
  .v4-body .v4-home .v4-story-card>img { flex:none; width:78px; height:100%; min-height:0; aspect-ratio:auto; }
  .v4-body .v4-home .v4-story-card>div { min-width:0; padding:10px 12px; }
  .v4-body .v4-home .v4-story-card h3 { font-size:var(--module-title-size,14px); line-height:1.5; }
  .v4-body .v4-home .v4-story-summary,
  .v4-body .v4-home .v4-story-card p { font-size:var(--module-body-size,12px); line-height:1.5; -webkit-line-clamp:1; }
  .v4-body .v4-home .v4-story-summary { margin-top:6px; }
  .v4-body .v4-home .v4-story-summary p { margin:0; }
  .v4-body .v4-home .v4-home-hero-copy h1 { font-size:var(--module-title-size,32px); }
  .v4-body .v4-home .v4-home-hero-copy>p { font-size:var(--module-body-size,20px); }
  .v4-body .v4-home [data-module-id="mission-project-links"] { margin-top:0; }
  .v4-body .v4-home [data-module-id="mission-project-links"] .v4-module-links { margin-block:12px 0; }
  /* Use the phone width for geography and the remaining height for its row. */
  .v4-body .v4-home .v4-scene.v4-home-impact {
    --v4-map-gutter:clamp(12px,3.5vw,24px);
    min-height:100svh; grid-template-rows:auto auto minmax(auto,1fr) auto auto;
    padding:calc(var(--v4-header-height,72px) + 12px) var(--v4-map-gutter) calc(16px + env(safe-area-inset-bottom,0px));
    align-content:stretch; justify-content:stretch; gap:clamp(12px,2svh,20px);
  }
  .v4-body .v4-home .v4-home-impact>.v4-home-map { gap:inherit; }
  .v4-body .v4-home .v4-home-impact .v4-map-heading { margin-left:calc(-1 * var(--v4-map-gutter)); }
  .v4-body .v4-home .v4-map-heading h2 { font-size:var(--module-title-size,clamp(19px,5.3vw,24px)); padding-block:9px; }
  .v4-body .v4-home .v4-map-heading p { margin-top:8px; margin-left:calc(var(--v4-map-gutter) + 2px); font-size:clamp(10px,2.9vw,13px); line-height:1.6; letter-spacing:0; }
  .v4-body .v4-home .v4-home-impact .v4-map-viewport {
    width:calc(100% + 2 * var(--v4-map-gutter)); margin-inline:calc(-1 * var(--v4-map-gutter));
    min-height:calc(100vw * 600 / 850); aspect-ratio:auto; overflow:hidden;
  }
  .v4-body .v4-home .v4-home-impact .v4-map-canvas { height:100%; display:grid; place-items:center; }
  .v4-body .v4-home .v4-home-impact .v4-china-map { width:100%; height:100%; aspect-ratio:850/600; }
  .v4-body .v4-home .v4-home-impact>.v4-impact-side { align-self:stretch; width:100%; max-width:none; margin:0; }
  .v4-body .v4-home .v4-home-impact .v4-impact-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; width:100%; }
  .v4-body .v4-home .v4-home-impact .v4-impact-metrics p { position:relative; margin:0; padding-inline:6px; min-width:0; border:0; font-size:clamp(11px,3vw,14px); line-height:1.6; text-align:center; }
  .v4-body .v4-home .v4-home-impact .v4-impact-metrics p+p::before { content:""; position:absolute; inset:0 auto 0 0; width:1px; background:#edddda; }
  .v4-body .v4-home .v4-home-impact .v4-impact-metrics strong { display:block; margin:3px 0; font-size:clamp(25px,7vw,34px); line-height:1.2; font-variant-numeric:tabular-nums; }
  .v4-body .v4-home .v4-home-impact .v4-map-toolbar { justify-content:center; }
  .v4-body .v4-home .v4-map-legend { display:grid; grid-template-columns:auto auto; justify-content:center; gap:5px 8px; font-size:clamp(11px,3vw,13px); line-height:1.5; }
  .v4-body .v4-home .v4-map-legend small { grid-column:1/-1; font:inherit; text-align:center; }
  .v4-body .v4-home .v4-home-impact .v4-map-detail { min-height:88px; text-align:left; padding:14px 18px; font-size:12px; }
  .v4-body .v4-home .v4-map-detail-region>strong { font-size:clamp(20px,5.5vw,25px); line-height:1.35; }
  .v4-body .v4-home .v4-map-detail-value>strong { font-size:clamp(38px,10vw,48px); }

  .v4-body .v4-tabs {
    display:flex; flex-wrap:nowrap; justify-content:flex-start; align-items:stretch;
    width:100%; max-width:100%; min-width:0; min-height:64px; gap:0; padding:0 8px;
    overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain;
  }
  .v4-body .v4-tabs>a {
    display:flex; flex:0 0 auto; justify-content:center; align-items:center;
    min-width:max-content; min-height:44px; margin:0; padding:18px 18px 24px;
    white-space:nowrap; font-size:15px; line-height:1.5;
  }
  .v4-body .v4-disclosure-tabs { display:flex; flex-wrap:nowrap; justify-content:flex-start; gap:8px; padding:8px 0; width:100%; max-width:100%; min-width:0; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; }
  .v4-body .v4-disclosure-tabs>a { display:flex; flex:0 0 auto; justify-content:center; align-items:center; text-align:center; min-width:max-content; min-height:44px; padding:10px 16px; margin:0; white-space:nowrap; font-size:15px; line-height:1.5; }
  .v4-body .v4-module-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .v4-body .v4-module-links>a { min-height:56px; padding:12px; gap:8px; font-size:15px; }
  .v4-body .v4-module-links>a:last-child:nth-child(odd) { grid-column:1/-1; }
  .v4-body .v4-module-articles>.v4-list-search { flex-wrap:wrap; justify-content:flex-start; }
  .v4-body .v4-module-articles>.v4-list-search input { flex:1; min-width:100px; }
  .v4-directory-toolbar { flex-direction:column; align-items:stretch; gap:12px; padding:18px; }
  .v4-directory-heading { justify-content:space-between; }
  .v4-directory-search { grid-template-columns:minmax(0,1fr) minmax(0,140px) auto; gap:10px; }
  .v4-directory-search button { min-height:44px; }
  .v4-directory-results { padding:0 18px 18px; }
  .v4-directory-results :is(th,td) { padding:12px 8px; font-size:14px; }
  .v4-roster-heading { flex-wrap:wrap; gap:4px; }
}

.v4-body .v4-home .v4-home-slogan .v4-home-slogan-artwork { width:100%; max-width:1000px; margin:0 auto; line-height:0; }
.v4-home-slogan-artwork>img { display:block; width:100%; height:auto; }

/* Mobile closing scene keeps the slogan above the shared responsive footer.
   Natural height remains available for enlarged text and unusually short screens. */
@media(max-width:1199px),(pointer:coarse) {
  .v4-body .v4-home .v4-scene.v4-home-contact {
    display:flex; flex-direction:column; height:auto; min-height:100svh;
    padding:var(--v4-header-height,72px) 0 0; gap:0;
  }
  .v4-body .v4-home .v4-home-contact .v4-home-slogan {
    flex:1 0 auto; display:grid; align-content:center; width:100%;
    padding:clamp(16px,3svh,32px) 24px;
  }
  .v4-body .v4-home .v4-home-contact .v4-home-slogan .v4-home-slogan-artwork { max-width:600px; }
}

@media(max-width:600px) {
  .v4-directory-toolbar { padding:16px 18px 12px; }
  .v4-directory-heading h2 { font-size:17px; }
  .v4-directory-search { grid-template-columns:minmax(0,1fr) 100px auto; gap:8px; }
  .v4-directory-search :is(input,select) { padding-inline:8px; }
}
