/* グローバルネットワーク */
.network-section-body { min-width: 0; }
.detail-page[data-page="network"] .page-hero h1 > span { display: block; }
.detail-page .network-block.network-introduction { grid-template-columns: minmax(0, 1fr); gap: 32px; }

.detail-page .network-block.network-countries,
.detail-page .network-block.network-scale { grid-template-columns: minmax(0, 1fr); gap: 32px; }
.network-country-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.network-country { display: flex; flex-direction: column; min-width: 0; }
.network-country-art { display: grid; grid-template-rows: minmax(0, 1fr); place-items: center; height: 240px; padding: 24px; background: var(--detail-surface); border-radius: 12px; }
.network-country-art img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: normal; }
.network-country-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding-top: 24px; }
.detail-page .network-country .network-country-year { margin: 0 0 8px; font-size: 14px; color: var(--muted); }
.detail-page .network-country h3 { margin: 0 0 16px; }
.detail-page .network-country h3 + p { margin: 0; font-size: var(--detail-body); }
.network-country-link { display: inline-flex; align-items: center; min-height: 48px; margin-top: 24px; padding: 10px 24px; background: var(--detail-surface); border-radius: 6px; font-size: 16px; font-weight: 600; transition: background 180ms ease, transform 180ms ease; }
.network-country-link:hover { background: #eeeee9; color: var(--ink); transform: translateY(-2px); }
.network-country-copy > p:not(.network-country-year) { flex: 1; }
.detail-page .network-block.network-scale { padding: 48px; background: var(--detail-surface); border-radius: 12px; }
.network-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0 0 32px; }
.network-metrics > div { display: flex; flex-direction: column; }
.network-metrics dt { order: 1; font-size: 14px; color: var(--muted); }
.network-metrics dd { margin: 0 0 12px; color: var(--ink); font: 700 clamp(28px, 3vw, 44px)/1.4 Arial, sans-serif; font-variant-numeric: tabular-nums; }

@media (max-width: 1000px) {
  .network-country-grid { gap: 24px; }
  .network-country-art { height: 200px; padding: 16px; }
}
@media (max-width: 767px) {
  .detail-page .network-block.network-introduction { gap: 24px; }
  .network-introduction .network-prose { margin-left: 0; }
  .network-country-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .network-country-art { height: 220px; padding: 24px; }
  .network-country-copy { padding-top: 20px; }
  .network-country-link { margin-top: 20px; }
  .detail-page .network-block.network-scale { padding: 28px 24px; gap: 24px; }
  .network-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; margin-bottom: 24px; }
  .network-metrics dd { font-size: 28px; }
}


.network-map { margin:48px 0; padding:32px 0; border-top:1px solid #e5e7e3; border-bottom:1px solid #e5e7e3; }
.network-map-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.network-map-kicker { font-size:12px;letter-spacing:.14em;color:#a94c13;margin:0 0 12px; }
.network-map h2 { font-size:28px;margin:0;line-height:1.5; }
.network-map-legend { font-size:13px;color:#68716a; }
.network-map-legend::before {content:"";display:inline-block;width:8px;height:8px;background:#fa7d31;border-radius:50%;margin-right:10px;box-shadow:0 0 0 5px #fff0e4;}
.network-map-stage { margin-top:24px; }
.network-map-graphic { display:block;width:100%;height:auto; }
.network-map-locations { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0;list-style:none;margin:28px 0 0; }
.network-map-location { display:flex;flex-direction:column;min-width:0;padding:24px;border:1px solid #e4e6e1;border-radius:12px;background:white; }
.network-map-location h3 { font-size:22px;margin:0 0 8px;order:-2; }
.network-map-location .network-country-year { font-size:13px;color:#747a75;margin:0 0 20px;order:-1; }
.network-map-country-description p { font-size:16px;line-height:1.9;margin:0 0 24px; }
.network-map-location a { align-self:start;display:inline-flex;margin-top:auto;min-height:44px;align-items:center;padding:0 18px;border-radius:6px;background:#f7f7f5;color:#282e2b;text-decoration:none;font-size:14px;font-weight:600; }
.network-map-caption {font-size:13px;color:#747a75;margin-top:24px;line-height:1.8;}
@media(max-width:767px){.network-map-heading{display:block}.network-map h2{font-size:24px}.network-map-legend{margin-top:20px}.network-map-locations{grid-template-columns:1fr;gap:16px;margin-top:24px}.network-map-location{padding:24px}.network-map-country-description p{font-size:15px}}

.network-map-country-description { flex: 1; }
.network-map-location .network-country-link { gap: 12px; margin-top: 0; }
.network-map-location .network-map-arrow { width: 16px; height: 16px; }
.network-map-location .network-country-link:focus-visible { outline: 2px solid #a94c13; outline-offset: 4px; }
.network-map-location[id], #network-map-title { scroll-margin-top: 112px; }
.network-map + .network-scale { margin-top: 64px; }
@media(max-width:767px) { .network-map { margin:40px 0 48px; padding:28px 0 24px; } .network-map + .network-scale { margin-top:48px; } }


.tax-network-map { margin:64px 0 72px; padding:36px 0 28px; border-top:1px solid #e5e7e3; border-bottom:1px solid #e5e7e3; }
.tax-map-heading { text-align:center; margin-bottom:20px; }
.tax-map-heading h2 { margin:0 0 12px; font-size:clamp(24px,2.5vw,32px);line-height:1.5; }
.tax-map-heading p { margin:0; color:#646e66;font-size:16px;line-height:1.9; }
.tax-map-scene { position:relative; aspect-ratio:1100/640; isolation:isolate; }
.tax-map-visual { position:absolute;inset:0; }
.tax-map-world { display:block;position:absolute;top:15.625%;left:0;width:100%;height:auto; }
.tax-map-leaders { position:absolute;inset:0;width:100%;height:100%;pointer-events:none; }
.tax-map-pin { position:absolute;left:var(--pin-left);top:var(--pin-top);display:grid;place-items:center;box-sizing:border-box;width:30px;height:30px;border:2px solid white;border-radius:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 1px 5px rgb(34 45 37 / 16%); }
.tax-map-pin img { position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center; }
.tax-country-list { list-style:none;margin:0;padding:0; }
.tax-country { position:absolute;left:var(--tax-left);top:var(--tax-top);width:19%;box-sizing:border-box;padding:10px;border:1px solid #dce1db;border-radius:10px;background:rgb(255 255 255 / 98%);box-shadow:0 3px 12px rgb(35 45 38 / 6%); }
.tax-country h3 { display:block;margin:0 0 8px;font-size:14px;line-height:1.5; }
.tax-country h3 img { display:block;width:24px;height:18px;object-fit:cover;border-radius:2px;flex-shrink:0;box-shadow:0 0 0 1px rgb(34 45 37 / 8%); }
.tax-country dl { margin:0;display:grid;gap:4px; }
.tax-country dl>div { display:flex;justify-content:space-between;align-items:baseline;gap:6px; }
.tax-country dt { font-size:10px;line-height:1.6;color:#687269; }
.tax-country dd { margin:0;text-align:right;font-size:11px;line-height:1.6;font-weight:600; }
@media(max-width:1100px) {
 .tax-network-map { margin:40px 0 48px;padding:28px 0 24px; }
 .tax-map-heading { text-align:left;margin-bottom:24px; }
 .tax-map-heading h2 { font-size:24px; }
 .tax-map-heading p { font-size:14px; }
 .tax-map-scene { aspect-ratio:auto; }
 .tax-map-world { position:static;width:100%;height:auto; }
 .tax-map-visual { position:relative;aspect-ratio:1100/450; }
 .tax-map-pin { top:var(--pin-mobile-top);width:16px;height:16px;border-width:1px;box-shadow:none; }

 .tax-map-leaders { display:none; }
 .tax-country-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px; }
 .tax-country { position:static;width:auto;box-shadow:none;padding:20px; }
 .tax-country dt { font-size:12px; }
 .tax-country dd { font-size:13px; }
}
@media(max-width:540px) { .tax-country-list { grid-template-columns:1fr;gap:12px; } .tax-country h3 { font-size:18px; } }
.tax-map-legend { display:inline-flex;justify-content:center;align-items:center;gap:26px;list-style:none;margin:20px 0 0;padding:12px 20px;border:0;border-radius:0;background:transparent; }
.tax-map-legend li { display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.5;color:#414b44; }
.tax-status-dot { flex-shrink:0;width:9px;height:9px;border-radius:50%;background:#a8aaa7; }
.tax-status-dot.is-operating { background:#fa7d31;box-shadow:0 0 0 5px rgb(250 125 49 / 18%); }
.tax-map-pin { overflow:visible;border-color:#a8aaa7; }
.tax-map-pin img { border-radius:50%; }
.tax-map-pin[data-status=operating] { border-color:#f58a44;box-shadow:0 0 0 5px rgb(250 125 49 / 12%); }
.tax-map-pin[data-status=operating]::before,.tax-map-pin[data-status=operating]::after { content:'';position:absolute;inset:-8px;z-index:-1;border:1px solid rgb(250 125 49 / 45%);border-radius:50%;background:rgb(250 125 49 / 10%);animation:network-operating-halo 3.8s cubic-bezier(.2,.65,.4,1) infinite;pointer-events:none; }
.tax-map-pin[data-status=operating]::after { animation-delay:-1.9s; }
@keyframes network-operating-halo { 0% { transform:scale(.72);opacity:0; } 18% { opacity:.6; } 100% { transform:scale(1.65);opacity:0; } }
.tax-country[data-status=operating] h3 { color:#b6531b; }
.tax-country-business { display:none; }
@media(max-width:1100px) { .tax-map-pin[data-status=operating] { box-shadow:0 0 0 3px rgb(250 125 49 / 12%); } .tax-map-pin[data-status=operating]::before,.tax-map-pin[data-status=operating]::after { inset:-5px; } }
@media(max-width:767px) {
 .network-countries { display:none; }
 .tax-country-business { display:block;margin-top:16px;padding-top:16px;border-top:1px solid #e6e9e3; }
 .tax-country-business p { margin:0;font-size:14px;line-height:1.85;color:#5a655c; }
 .tax-country-business .network-country-link { margin-top:16px;font-size:14px; }
 .tax-map-legend { display:flex;width:100%;justify-content:center;gap:24px;padding:12px 0; }
 .tax-map-legend li { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .tax-map-pin[data-status=operating]::before,.tax-map-pin[data-status=operating]::after { animation:none;transform:none;opacity:.16; } }

/* 購入金額の算定単位を明記 */
.tax-minimum-terms { display:block;margin-top:2px;font-size:10px;line-height:1.5;font-weight:400;color:#687269;text-align:left; }
@media(max-width:767px) { .tax-minimum-terms { font-size:12px;line-height:1.65; } }

.tax-country dl>div:last-child { display:block;font-size:11px;line-height:1.6; }
.tax-country dl>div:last-child dt,.tax-country dl>div:last-child dd { display:inline; }
.tax-country dl>div:last-child dd { margin-left:6px; }

.tax-minimum-value { display:inline-block;white-space:nowrap; }

/* スマートフォンでは運営国を先に表示 */
@media(max-width:767px) {
 .tax-country[data-country=kr] { order:-3; }
 .tax-country[data-country=jp] { order:-2; }
 .tax-country[data-country=sg] { order:-1; }
}

/* スマートフォンでは欧州・アジア・オセアニアを拡大 */
@media(max-width:767px) {
 .tax-map-visual { aspect-ratio:625/405;overflow:hidden; }
 .tax-map-world { position:absolute;left:-2.4%;top:-3.703704%;width:176%;max-width:none;height:auto; }
 .tax-map-pin { left:calc(var(--pin-left) * 1.76 - 2.4%);top:calc(var(--pin-mobile-top) * 1.111111 - 3.703704%);width:24px;height:24px; }
 /* 近接する国旗の重なりを避ける */
 .tax-map-pin[data-country=de] { margin-top:-6px; }
 .tax-map-pin[data-country=it] { margin-top:6px; }
 .tax-map-pin[data-country=es] { margin-left:-6px; }
 .tax-map-pin[data-country=kr] { margin-left:-5px; }
 .tax-map-pin[data-country=jp] { margin-left:5px; }
}

/* 韓国の紹介写真をカード全面に配置 */
.network-country-art.network-country-photo { padding:0;overflow:hidden; }
.network-country-photo img { object-fit:cover;object-position:50% 60%; }

/* 韓国詳細ページの写真をヒーロー枠に合わせる */
.detail-page[data-page="korea"] .page-hero-visual.is-korea-photo img { object-fit:cover;object-position:50% 60%;padding:0; }

/* シンガポール詳細ページの写真をヒーロー枠に合わせる */
.detail-page[data-page="singapore"] .page-hero-visual.is-singapore-photo img { object-fit:cover;object-position:55% 50%;padding:0; }
