﻿* {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      overflow-x: hidden;
      color: #172433;
      background: #eaf1f6;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }

    body[data-theme="dark"] {
      color: #e8eef5;
      background: #101821;
    }

    .app {
      display: contents;
    }

    header {
      position: sticky;
      top: 0;
      z-index: 20;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 12px 16px;
      background: #fff;
      border-bottom: 1px solid #d3dde7;
      box-shadow: 0 1px 8px rgba(29, 48, 68, 0.08);
    }

    body[data-theme="dark"] header {
      background: #172333;
      border-bottom-color: #2d4055;
      box-shadow: 0 1px 8px rgba(0, 0, 0, 0.25);
    }

    h1 {
      margin: 0;
      font-size: 18px;
      line-height: 1.2;
      white-space: nowrap;
    }

    .site-search {
      position: relative;
      flex: 1 1 320px;
      max-width: 460px;
    }

    .search-field {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 6px;
    }

    .site-search input {
      width: 100%;
      height: 36px;
      padding: 0 12px;
      border: 1px solid #b9c8d4;
      border-radius: 8px;
      color: inherit;
      background: #f8fbfd;
      font: inherit;
    }

    .search-button {
      min-width: 64px;
      height: 36px;
      padding: 0 12px;
      font-size: 13px;
      font-weight: 800;
      white-space: nowrap;
    }

    .search-results {
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      right: 0;
      z-index: 30;
      display: grid;
      max-height: min(320px, 58dvh);
      overflow-y: auto;
      border: 1px solid #b9c8d4;
      border-radius: 8px;
      background: #fff;
      box-shadow: 0 12px 26px rgba(17, 35, 55, 0.18);
    }

    .search-results[hidden] {
      display: none;
    }

    .search-option {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      min-height: 44px;
      padding: 10px 12px;
      border: 0;
      border-bottom: 1px solid #e0e8ef;
      border-radius: 0;
      text-align: left;
      background: transparent;
      font: inherit;
    }

    .search-option:last-child {
      border-bottom: 0;
    }

    .search-option small {
      color: #607386;
      font-size: 12px;
      font-weight: 800;
      white-space: nowrap;
    }

    .search-option:hover,
    .search-option:focus {
      background: #eaf3fa;
    }

    body[data-theme="dark"] .site-search input {
      border-color: #40566d;
      background: #1d2b3b;
    }

    body[data-theme="dark"] .search-results {
      border-color: #40566d;
      background: #172333;
      box-shadow: 0 12px 26px rgba(0, 0, 0, 0.34);
    }

    body[data-theme="dark"] .search-option {
      border-bottom-color: #26394d;
    }

    body[data-theme="dark"] .search-option small {
      color: #aebdcb;
    }

    .controls {
      display: flex;
      flex: 0 0 auto;
      align-items: center;
      gap: 8px;
    }

    .support-link {
      display: inline-flex;
      align-items: center;
      height: 36px;
      padding: 0 12px;
      border: 1px solid #b9c8d4;
      border-radius: 8px;
      color: #12324d;
      background: #fff8df;
      font-size: 13px;
      font-weight: 800;
      text-decoration: none;
    }

    .map-return-button {
      height: 36px;
      padding: 0 12px;
      font-size: 13px;
      font-weight: 800;
      white-space: nowrap;
    }

    body[data-theme="dark"] .support-link {
      color: #f5f8fb;
      border-color: #665733;
      background: #352d1b;
    }

    button {
      border: 1px solid #b9c8d4;
      border-radius: 8px;
      color: #172433;
      background: #f8fbfd;
      cursor: pointer;
    }

    body[data-theme="dark"] button {
      color: #e8eef5;
      border-color: #40566d;
      background: #1d2b3b;
    }

    button:hover {
      background: #e8f0f6;
    }

    body[data-theme="dark"] button:hover {
      background: #26384b;
    }

    .icon-button {
      width: 40px;
      height: 36px;
      font-size: 20px;
      line-height: 1;
    }

    .map-shell {
      position: relative;
      height: calc(100dvh - 61px);
      min-height: 480px;
      scroll-margin-top: 64px;
      overflow: hidden;
      touch-action: none;
      cursor: grab;
      background:
        linear-gradient(rgba(255, 255, 255, 0.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.16) 1px, transparent 1px),
        #86bdd9;
      background-size: 64px 64px;
    }

    body[data-theme="dark"] .map-shell {
      background:
        linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px),
        #1c3d52;
      background-size: 64px 64px;
    }

    .map-shell.dragging {
      cursor: grabbing;
    }

    .map-layer {
      position: absolute;
      inset: 0;
      transform-origin: 0 0;
      will-change: transform;
    }

    .sponsor-rail {
      position: absolute;
      left: 12px;
      top: 74px;
      z-index: 3;
      display: grid;
      gap: 7px;
      width: 150px;
      padding: 10px;
      border: 1px solid #cbd7e2;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.92);
      box-shadow: 0 8px 20px rgba(17, 35, 55, 0.14);
      font-size: 13px;
    }

    .sponsor-rail a {
      color: #0f5f95;
      font-weight: 700;
    }

    body[data-theme="dark"] .sponsor-rail {
      border-color: #40566d;
      background: rgba(23, 35, 51, 0.92);
    }

    svg {
      display: block;
      width: 100%;
      height: 100%;
      overflow: visible;
    }

    .ocean {
      fill: #86bdd9;
    }

    body[data-theme="dark"] .ocean {
      fill: #1c3d52;
    }

    .country {
      fill: #d8cf9d;
      stroke: #657482;
      stroke-width: 0.55;
      vector-effect: non-scaling-stroke;
      cursor: pointer;
    }

    body[data-theme="dark"] .country {
      fill: #53614c;
      stroke: #8ea2b4;
    }

    .country.coming-soon-country {
      fill: #c8c4ad;
      opacity: 0.72;
    }

    body[data-theme="dark"] .country.coming-soon-country {
      fill: #455145;
      opacity: 0.7;
    }

    .country:hover {
      stroke: #273c50;
      stroke-width: 0.9;
    }

    body[data-theme="dark"] .country:hover {
      stroke: #f0d48a;
    }

    .country.selected {
      fill: #f0be64;
      stroke: #db3333;
      stroke-width: 1.25;
    }

    body[data-theme="dark"] .country.selected {
      fill: #9e7a34;
      stroke: #ff6b6b;
    }

    .country:focus,
    .pin:focus,
    .city-dot:focus,
    .cluster:focus {
      outline: none;
    }

    .country-label {
      display: none;
      fill: #24384c;
      font-size: 8px;
      font-weight: 700;
      paint-order: stroke;
      pointer-events: none;
      stroke: rgba(255, 255, 255, 0.82);
      stroke-linejoin: round;
      stroke-width: 3px;
      user-select: none;
    }

    body[data-theme="dark"] .country-label {
      fill: #e9f2fb;
      stroke: rgba(16, 24, 33, 0.9);
    }

    .show-country-labels .country-label {
      display: block;
    }

    .pin,
    .city-dot,
    .cluster,
    .layer-marker,
    .layer-cluster {
      cursor: pointer;
    }

    .city-dot circle {
      fill: #df3c3c;
      stroke: #fff;
      stroke-width: 1.2;
      filter: drop-shadow(0 2px 3px rgba(26, 29, 34, 0.25));
    }

    .pin circle {
      fill: #df3c3c;
      stroke: #fff;
      stroke-width: 1.8;
      filter: drop-shadow(0 3px 4px rgba(26, 29, 34, 0.34));
    }

    .pin path {
      fill: #df3c3c;
      stroke: #fff;
      stroke-width: 1.4;
    }

    .city-label {
      display: none;
      fill: #102033;
      font-size: 10px;
      font-weight: 800;
      paint-order: stroke;
      stroke: rgba(255, 255, 255, 0.92);
      stroke-width: 3px;
    }

    body[data-theme="dark"] .city-label {
      fill: #f5f8fb;
      stroke: rgba(16, 24, 33, 0.95);
    }

    .city-label.visible {
      display: block;
    }

    .selected-city circle {
      fill: #c81f42;
    }

    .pin:hover circle,
    .city-dot:hover circle,
    .pin:focus circle,
    .city-dot:focus circle {
      fill: #b91435;
      stroke-width: 2;
    }

    .cluster circle {
      fill: #254d73;
      stroke: #fff;
      stroke-width: 2.5;
      filter: drop-shadow(0 3px 4px rgba(26, 29, 34, 0.3));
    }

    .cluster text {
      fill: #fff;
      font-size: 11px;
      font-weight: 800;
      text-anchor: middle;
      dominant-baseline: central;
      pointer-events: none;
    }

    .layer-marker {
      filter: drop-shadow(0 2px 3px rgba(26, 29, 34, 0.24));
    }

    .layer-marker path,
    .layer-marker rect,
    .layer-marker polygon {
      stroke: #fff;
      stroke-width: 1.15;
      vector-effect: non-scaling-stroke;
    }

    .layer-marker text {
      display: none;
      fill: #102033;
      font-size: 8px;
      font-weight: 800;
      paint-order: stroke;
      stroke: rgba(255, 255, 255, 0.92);
      stroke-width: 2.6px;
      pointer-events: none;
    }

    .layer-marker:hover text,
    .layer-marker:focus text,
    .layer-marker.selected text {
      display: block;
    }

    .layer-marker:hover path,
    .layer-marker:hover rect,
    .layer-marker:hover polygon,
    .layer-marker:focus path,
    .layer-marker:focus rect,
    .layer-marker:focus polygon {
      stroke-width: 1.8;
    }

    .layer-marker.heritage path {
      fill: #8b5cf6;
    }

    .layer-marker.airport rect {
      fill: #0f7b8f;
    }

    .layer-marker.spot polygon {
      fill: #e0a900;
    }

    body[data-theme="dark"] .layer-marker text {
      fill: #f5f8fb;
      stroke: rgba(16, 24, 33, 0.95);
    }

    .layer-cluster circle {
      fill: #193f5f;
      stroke: #fff;
      stroke-width: 2;
      filter: drop-shadow(0 3px 4px rgba(26, 29, 34, 0.28));
    }

    .layer-cluster text {
      fill: #fff;
      font-size: 10px;
      font-weight: 900;
      text-anchor: middle;
      dominant-baseline: central;
      pointer-events: none;
    }

    .layer-cluster.heritage circle {
      fill: #6d46c9;
    }

    .layer-cluster.airport circle {
      fill: #0f7b8f;
    }

    .layer-cluster.spot circle {
      fill: #aa7d00;
    }

    .perf-panel {
      position: absolute;
      right: 12px;
      bottom: 12px;
      z-index: 5;
      min-width: 176px;
      padding: 10px;
      border: 1px solid #cbd7e2;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.92);
      box-shadow: 0 8px 20px rgba(17, 35, 55, 0.16);
      font-size: 12px;
    }

    .perf-panel.hidden {
      display: none;
    }

    .perf-panel button {
      float: right;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      line-height: 1;
    }

    .perf-panel dl {
      grid-template-columns: 86px 1fr;
      gap: 3px 8px;
      margin-top: 8px;
      font-size: 12px;
    }

    body[data-theme="dark"] .perf-panel {
      border-color: #40566d;
      background: rgba(23, 35, 51, 0.92);
    }

    .info-popups {
      position: absolute;
      z-index: 4;
      display: flex;
      gap: 10px;
      align-items: start;
      top: 12px;
      max-width: min(620px, calc(100vw - 84px));
    }

    .info-popups[hidden] {
      display: none;
    }

    .info-popups.side-left {
      left: 12px;
      right: auto;
    }

    .info-popups.side-right {
      left: auto;
      right: 64px;
    }

    .info-card {
      width: min(300px, calc(100vw - 24px));
      max-height: calc(100dvh - 108px);
      overflow: auto;
      padding: 12px;
      border: 1px solid #cbd7e2;
      border-radius: 8px;
      background: #fff;
      box-shadow: 0 14px 32px rgba(17, 35, 55, 0.25);
    }

    body[data-theme="dark"] .info-card {
      color: #e8eef5;
      border-color: #40566d;
      background: #172333;
      box-shadow: 0 14px 32px rgba(0, 0, 0, 0.38);
    }

    .info-card[hidden] {
      display: none;
    }

    .info-title {
      display: flex;
      align-items: start;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 8px;
    }

    .info-title h2 {
      margin: 0;
      font-size: 18px;
      line-height: 1.2;
    }

    .info-subtitle {
      margin: 2px 0 0;
      color: #627285;
      font-size: 13px;
    }

    .close {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      font-size: 18px;
      line-height: 1;
    }

    dl {
      display: grid;
      grid-template-columns: 92px 1fr;
      gap: 6px 10px;
      margin: 0;
      font-size: 14px;
    }

    dt {
      color: #627285;
    }

    dd {
      margin: 0;
      font-weight: 700;
    }

    .city-link-list {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }

    .city-link-button {
      min-height: 28px;
      padding: 4px 9px;
      border: 1px solid #b9c9d8;
      border-radius: 999px;
      color: #12324d;
      font: inherit;
      font-size: 13px;
      font-weight: 800;
      background: #eef5fb;
      cursor: pointer;
    }

    .city-link-button:hover,
    .city-link-button:focus {
      border-color: #d94747;
      color: #a11933;
      background: #fff5f5;
    }

    body[data-theme="dark"] .city-link-button {
      color: #e8eef5;
      border-color: #40566d;
      background: #223247;
    }

    a {
      color: #0f5f95;
      text-decoration: none;
    }

    a:hover {
      text-decoration: underline;
    }

    .mode-drawer {
      position: absolute;
      top: 12px;
      right: 12px;
      z-index: 4;
      display: grid;
      grid-template-columns: auto 260px;
      align-items: start;
      transform: translateX(260px);
      transition: transform 180ms ease;
    }

    .mode-drawer.open {
      transform: translateX(0);
    }

    .drawer-toggle {
      width: 42px;
      height: 42px;
      border-radius: 8px 0 0 8px;
      border-right: 0;
      font-size: 20px;
      background: rgba(255, 255, 255, 0.94);
      box-shadow: 0 8px 20px rgba(17, 35, 55, 0.16);
    }

    body[data-theme="dark"] .drawer-toggle {
      background: rgba(23, 35, 51, 0.96);
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.32);
    }

    .drawer-panel {
      min-height: 160px;
      padding: 10px;
      border: 1px solid #cbd7e2;
      border-radius: 0 8px 8px 8px;
      background: rgba(255, 255, 255, 0.96);
      box-shadow: 0 8px 20px rgba(17, 35, 55, 0.16);
    }

    body[data-theme="dark"] .drawer-panel {
      border-color: #40566d;
      background: rgba(23, 35, 51, 0.96);
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.32);
    }

    .tabs {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6px;
      margin-bottom: 10px;
    }

    .tab-button,
    .overlay-button {
      height: 34px;
      padding: 0 10px;
      font-size: 13px;
      font-weight: 700;
    }

    .tab-button.active,
    .overlay-button.active {
      color: #fff;
      border-color: #254d73;
      background: #254d73;
    }

    .tab-panel[hidden] {
      display: none;
    }

    .mode-options {
      display: grid;
      gap: 8px;
    }

    .theme-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 8px 2px 12px;
      border-bottom: 1px solid #d7e1ea;
      font-size: 13px;
      font-weight: 800;
    }

    body[data-theme="dark"] .theme-row {
      border-color: #40566d;
    }

    .theme-switch {
      position: relative;
      width: 44px;
      height: 24px;
      padding: 0;
      border: 0;
      border-radius: 999px;
      background: #d3dde7;
      cursor: pointer;
      transition: background 160ms ease;
    }

    .theme-switch::before {
      content: "";
      position: absolute;
      top: 3px;
      left: 3px;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      background: #fff;
      box-shadow: 0 1px 3px rgba(17, 35, 55, 0.25);
      transition: transform 160ms ease;
    }

    .theme-switch.active {
      background: #155bd4;
    }

    .theme-switch.active::before {
      transform: translateX(20px);
    }

    .overlay-title {
      margin: 10px 0 6px;
      color: #627285;
      font-size: 12px;
      font-weight: 800;
    }

    body[data-theme="dark"] .overlay-title {
      color: #b8c6d5;
    }

    .overlay-options {
      display: grid;
      gap: 6px;
    }

    .empty-settings {
      margin: 6px 0 0;
      color: #627285;
      font-size: 13px;
    }

    .site-content {
      background: #f6f9fc;
    }

    body[data-theme="dark"] .site-content {
      background: #101821;
    }

    .content-section {
      max-width: 1080px;
      margin: 0 auto;
      padding: 48px 18px;
    }

    .content-section h2 {
      margin: 0 0 14px;
      font-size: 26px;
      line-height: 1.25;
    }

    .content-section p {
      max-width: 760px;
      margin: 0 0 16px;
      color: #536476;
      line-height: 1.8;
    }

    body[data-theme="dark"] .content-section p {
      color: #b8c6d5;
    }

    .section-kicker {
      margin: 0 0 8px;
      color: #0f5f95;
      font-size: 12px;
      font-weight: 900;
      letter-spacing: 0;
      text-transform: uppercase;
    }

    body[data-theme="dark"] .section-kicker {
      color: #8bc5ee;
    }

    .detail-section {
      display: grid;
      gap: 18px;
      scroll-margin-top: 84px;
    }

    .detail-heading {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
    }

    .map-view-action {
      flex: 0 0 auto;
      margin-top: 2px;
    }

    .detail-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }

    .detail-panel {
      padding: 16px;
      border: 1px solid #d6e1ea;
      border-radius: 8px;
      background: #fff;
    }

    body[data-theme="dark"] .detail-panel {
      border-color: #40566d;
      background: #172333;
    }

    .detail-panel h3 {
      margin: 0 0 10px;
      font-size: 17px;
    }

    .coming-soon-panel {
      border-style: dashed;
    }

    .service-panel {
      background: #f8fbfd;
    }

    body[data-theme="dark"] .service-panel {
      background: #142031;
    }

    .muted-note {
      margin: 0 0 10px;
      color: #647587;
      font-size: 13px;
      line-height: 1.6;
    }

    body[data-theme="dark"] .muted-note {
      color: #b6c3d1;
    }

    .detail-list {
      display: grid;
      grid-template-columns: 120px 1fr;
      gap: 8px 12px;
      margin: 0;
      font-size: 14px;
    }

    .detail-list dt {
      color: #627285;
      font-weight: 700;
    }

    .detail-list dd {
      margin: 0;
      font-weight: 700;
    }

    .link-list,
    .service-links {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .link-list a,
    .service-links a,
    .detail-action {
      display: inline-flex;
      align-items: center;
      min-height: 30px;
      padding: 5px 10px;
      border: 1px solid #b9c9d8;
      border-radius: 999px;
      background: #eef5fb;
      color: #12324d;
      font-size: 13px;
      font-weight: 800;
      text-decoration: none;
    }

    body[data-theme="dark"] .link-list a,
    body[data-theme="dark"] .service-links a,
    body[data-theme="dark"] .detail-action {
      color: #e8eef5;
      border-color: #40566d;
      background: #223247;
    }

    .service-section {
      border-top: 1px solid #d6e1ea;
    }

    body[data-theme="dark"] .service-section {
      border-color: #26394d;
    }

    .detail-preview {
      display: grid;
      grid-template-columns: minmax(240px, 0.8fr) 1fr;
      gap: 22px;
      align-items: center;
      margin-top: 22px;
    }

    .image-placeholder {
      min-height: 220px;
      border-radius: 8px;
      background:
        linear-gradient(135deg, rgba(37, 77, 115, 0.82), rgba(134, 189, 217, 0.74)),
        linear-gradient(45deg, transparent 48%, rgba(255, 255, 255, 0.35) 49%, rgba(255, 255, 255, 0.35) 51%, transparent 52%);
      background-size: auto, 28px 28px;
    }

    .footer-links {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 16px;
      margin-top: 20px;
      padding-top: 20px;
      border-top: 1px solid #d7e0ea;
    }

    body[data-theme="dark"] .footer-links {
      border-top-color: #2d4055;
    }

    .footer-links h3 {
      margin: 0 0 8px;
      font-size: 14px;
    }

    .footer-links a {
      display: block;
      margin: 6px 0;
      color: #52677a;
      font-size: 13px;
    }

    body[data-theme="dark"] .footer-links a {
      color: #b8c6d5;
    }

    .footer-notes {
      display: grid;
      gap: 8px;
      margin-top: 26px;
      padding-top: 18px;
      border-top: 1px solid #d6e1ea;
    }

    .footer-notes h3 {
      margin: 10px 0 0;
      font-size: 15px;
    }

    .footer-notes p {
      margin: 0;
      font-size: 13px;
    }

    body[data-theme="dark"] .footer-notes {
      border-color: #26394d;
    }

    .to-top {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 8;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      box-shadow: 0 10px 22px rgba(17, 35, 55, 0.22);
      opacity: 0;
      pointer-events: none;
      transform: translateY(8px);
      transition: opacity 160ms ease, transform 160ms ease;
    }

    .to-top.visible {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0);
    }

    .setting-row {
      display: grid;
      gap: 6px;
      font-size: 13px;
      font-weight: 700;
    }

    select {
      width: 100%;
      height: 34px;
      padding: 0 8px;
      border: 1px solid #b9c8d4;
      border-radius: 8px;
      color: #172433;
      background: #f8fbfd;
      font: inherit;
    }

    body[data-theme="dark"] select {
      color: #e8eef5;
      border-color: #40566d;
      background: #1d2b3b;
    }

    @media (max-width: 700px) {
      header {
        flex-wrap: wrap;
        padding: 10px 12px;
        gap: 8px;
      }

      h1 {
        font-size: 16px;
      }

      .controls {
        gap: 4px;
      }

      .icon-button {
        width: 36px;
        height: 34px;
      }

      .map-return-button,
      .support-link {
        height: 34px;
        padding: 0 9px;
        font-size: 12px;
      }

      .map-return-button {
        width: 42px;
        padding: 0;
        font-size: 0;
      }

      .map-return-button::after {
        content: "地図";
        font-size: 12px;
      }

      .map-shell {
        height: calc(100dvh - 98px);
        min-height: 430px;
        scroll-margin-top: 104px;
      }

      .country-label {
        font-size: 7px;
      }

      .city-label {
        font-size: 9px;
      }

      .info-popups {
        left: 12px;
        right: 12px;
        top: auto;
        bottom: 12px;
        flex-direction: column;
        gap: 8px;
        max-width: none;
      }

      .info-popups.side-left,
      .info-popups.side-right {
        left: 12px;
        right: 12px;
      }

      .info-card {
        width: 100%;
        max-height: min(42dvh, 340px);
      }

      .mode-drawer {
        grid-template-columns: auto min(240px, calc(100vw - 58px));
        transform: translateX(min(240px, calc(100vw - 58px)));
      }

      .detail-preview,
      .detail-grid,
      .footer-links {
        grid-template-columns: 1fr;
      }

      .site-search {
        order: 3;
        display: block;
        flex: 1 0 100%;
        max-width: none;
      }

      .site-search input {
        height: 34px;
      }

      .search-button {
        min-width: 58px;
        height: 34px;
        padding: 0 10px;
      }

      .search-option {
        min-height: 48px;
        padding: 12px;
      }

      .sponsor-rail {
        display: none;
      }

      .detail-heading {
        display: grid;
        gap: 10px;
      }
    }
