/* てちょ割 - 施設・地域・カテゴリページ用スタイル */

.techowari-wrap {
  --tw-ink: #111827;
  --tw-muted: #6b7280;
  --tw-border: #d1d5db;
  --tw-accent: #1d4ed8;
  --tw-accent-2: #7c3aed;
  --tw-surface: #f3f4f6;
  --tw-rate-bg: #d97706;
  color: var(--tw-ink);
  overflow-x: hidden;
}

.techowari-dl dd,
.techowari-discount-details {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* 2カラムレイアウト（本文＋サイドバー） */
.techowari-page {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 16px 56px;
}
.techowari-page .techowari-wrap {
  flex: 1;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 24px 0 0;
}
@media (max-width: 760px) {
  .techowari-page {
    flex-direction: column;
  }
}

.techowari-breadcrumb {
  font-size: 12px;
  color: var(--tw-muted);
  margin-bottom: 16px;
}
.techowari-breadcrumb a {
  color: var(--tw-muted);
  text-decoration: none;
}
.techowari-breadcrumb a:hover {
  text-decoration: underline;
}
.techowari-breadcrumb span {
  margin: 0 4px;
}

.techowari-title,
.techowari-h1 {
  font-size: 24px;
  font-weight: 800;
  margin: 0 0 6px;
  line-height: 1.4;
}

.techowari-operator {
  font-size: 13px;
  color: var(--tw-muted);
  margin: 0 0 16px;
}

.techowari-unverified-notice {
  font-size: 13px;
  line-height: 1.6;
  color: #7a4a00;
  background: #fff6e5;
  border: 1px solid #f0d190;
  border-radius: 8px;
  padding: 10px 14px;
  margin: 0 0 16px;
}

.techowari-lead {
  font-size: 13px;
  color: var(--tw-muted);
  margin: 0 0 20px;
}

.techowari-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 24px;
}
.techowari-badge {
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 11px;
  background: var(--tw-surface);
  color: #374151;
  border: 1px solid var(--tw-border);
}

.techowari-card {
  border: 1px solid var(--tw-border);
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 24px;
  background: #fff;
}
.techowari-card h2,
.techowari-group-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 12px;
}

.techowari-dl .techowari-row {
  display: flex;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid #f0f1f3;
  font-size: 13px;
}
.techowari-dl .techowari-row:last-child {
  border-bottom: none;
}
.techowari-dl dt {
  width: 96px;
  flex-shrink: 0;
  color: var(--tw-muted);
  font-size: 12px;
}
.techowari-dl dd {
  margin: 0;
}
.techowari-dl a {
  color: var(--tw-accent);
}

.techowari-discount-section h2 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 12px;
}
.techowari-discount-card {
  border: 1px solid #fde68a;
  background: #fffbeb;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 24px;
}
.techowari-discount-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  margin-bottom: 10px;
}
.techowari-discount-head h3 {
  font-size: 14px;
  font-weight: 700;
  margin: 0;
  min-width: 0;
  overflow-wrap: break-word;
}
.techowari-rate-badge {
  background: var(--tw-rate-bg);
  color: #fff;
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 700;
  white-space: normal;
  max-width: 100%;
}
.techowari-discount-details {
  font-size: 13px;
  line-height: 1.7;
  margin: 0 0 14px;
}
.techowari-discount-card .techowari-row {
  border-bottom-color: #f2e6c8;
}

.techowari-updated {
  font-size: 11px;
  color: var(--tw-muted);
}

.techowari-back {
  margin-top: 20px;
}
.techowari-back-top {
  margin: 18px 0 10px;
}
.techowari-back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--tw-border);
  border-radius: 999px;
  padding: 9px 18px;
  font-size: 13px;
  font-weight: 600;
  color: var(--tw-ink);
  background: #fff;
  text-decoration: none;
  transition: border-color .15s, background .15s;
}
.techowari-back-link:hover {
  border-color: var(--tw-accent);
  background: #eef2ff;
  color: var(--tw-accent);
}

.techowari-empty {
  padding: 16px 18px;
  background: var(--tw-surface);
  border-radius: 8px;
  font-size: 13px;
  color: var(--tw-muted);
}

.techowari-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  margin-bottom: 28px;
}
.techowari-card-link {
  display: block;
  border: 1px solid var(--tw-border);
  border-radius: 10px;
  background: #fff;
  padding: 16px;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, box-shadow .15s;
}
.techowari-card-link:hover {
  border-color: var(--tw-accent);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.techowari-card-title {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 4px;
}
.techowari-card-sub {
  font-size: 12px;
  color: var(--tw-muted);
}

.techowari-group {
  margin-bottom: 32px;
}
.techowari-group-title a {
  color: var(--tw-ink);
  text-decoration: none;
}
.techowari-group-title a:hover {
  text-decoration: underline;
}
.techowari-count {
  font-size: 12px;
  font-weight: 400;
  color: var(--tw-muted);
  margin-left: 4px;
}

.techowari-rowlist {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.techowari-row-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid var(--tw-border);
  border-radius: 10px;
  background: #fff;
  padding: 16px 18px;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, box-shadow .15s;
}
.techowari-row-card:hover {
  border-color: var(--tw-accent);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.techowari-card-address {
  font-size: 12px;
  color: var(--tw-muted);
  margin-top: 6px;
}

/* トップページ */
.techowari-hero {
  position: relative;
  padding: 44px 24px;
  margin: 0 -16px 36px;
  border-radius: 0 0 32px 32px;
  background: linear-gradient(135deg, #eef2ff 0%, #f5f3ff 45%, #e0f2fe 100%);
  overflow: hidden;
  isolation: isolate;
}
.techowari-hero::before,
.techowari-hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(50px);
  opacity: .55;
  z-index: -1;
}
.techowari-hero::before {
  width: 240px;
  height: 240px;
  background: #93c5fd;
  top: -80px;
  left: -60px;
}
.techowari-hero::after {
  width: 200px;
  height: 200px;
  background: #f5b8dd;
  bottom: -70px;
  right: -50px;
}
.techowari-hero-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  max-width: 1040px;
  margin: 0 auto;
}
.techowari-hero-text {
  flex: 1;
  min-width: 0;
  text-align: left;
}
.techowari-hero-noimage .techowari-hero-inner {
  justify-content: center;
}
.techowari-hero-noimage .techowari-hero-text {
  text-align: center;
  flex: none;
  max-width: 640px;
}
.techowari-hero-noimage .techowari-h1,
.techowari-hero-noimage .techowari-lead {
  margin-left: auto;
  margin-right: auto;
}
.techowari-hero-image {
  flex: 0 0 auto;
  width: 42%;
  max-width: 380px;
}
.techowari-hero-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(29, 78, 216, .18);
}
@media (max-width: 760px) {
  .techowari-hero-inner {
    flex-direction: column-reverse;
    text-align: center;
  }
  .techowari-hero-text {
    text-align: center;
  }
  .techowari-hero-image {
    width: 72%;
    max-width: 280px;
  }
}
.techowari-hero .techowari-h1 {
  font-size: 30px;
  max-width: 640px;
  margin: 0 0 6px;
  background: linear-gradient(90deg, var(--tw-accent), var(--tw-accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.techowari-hero .techowari-lead {
  max-width: 480px;
  margin: 10px 0 0;
  font-size: 14px;
}
@media (max-width: 760px) {
  .techowari-hero .techowari-h1,
  .techowari-hero .techowari-lead {
    margin-left: auto;
    margin-right: auto;
  }
}
.techowari-hero .techowari-search-form {
  max-width: 480px;
  margin: 22px 0 0;
  background: #fff;
  padding: 6px;
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(29, 78, 216, .16);
}
@media (max-width: 760px) {
  .techowari-hero .techowari-search-form {
    margin: 22px auto 0;
  }
}
.techowari-hero .techowari-search-input {
  border: none;
  background: transparent;
  padding: 10px 8px 10px 18px;
}
.techowari-hero .techowari-search-input:focus {
  outline: none;
}
.techowari-hero .techowari-search-button {
  border-radius: 999px;
  padding: 10px 24px;
  background: linear-gradient(90deg, var(--tw-accent), var(--tw-accent-2));
}
.techowari-hero .techowari-search-button:hover {
  background: linear-gradient(90deg, #1e40af, #6d28d9);
}

.techowari-front-section {
  margin-bottom: 36px;
}
.techowari-front-section h2,
.techowari-section-title {
  position: relative;
  font-size: 18px;
  font-weight: 800;
  margin: 0 0 16px;
  padding-left: 14px;
}
.techowari-front-section h2::before,
.techowari-section-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 4px;
  border-radius: 4px;
  background: linear-gradient(180deg, var(--tw-accent), var(--tw-accent-2));
}
.techowari-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.techowari-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--tw-border);
  border-radius: 999px;
  padding: 9px 18px;
  font-size: 13px;
  font-weight: 600;
  color: var(--tw-ink);
  background: #fff;
  text-decoration: none;
  transition: border-color .15s, background .15s, transform .15s, box-shadow .15s;
}
.techowari-chip:hover {
  border-color: var(--tw-accent);
  background: linear-gradient(90deg, #eef2ff, #f5f3ff);
  color: var(--tw-accent);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(29, 78, 216, .12);
}
.techowari-chip-count {
  font-size: 12px;
  color: var(--tw-muted);
}
.techowari-district-group {
  margin-bottom: 18px;
}
.techowari-district-group:last-child {
  margin-bottom: 0;
}
.techowari-district-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--tw-muted);
  margin: 0 0 8px;
}

/* 検索フォーム */
.techowari-search-form {
  display: flex;
  gap: 8px;
  margin-top: 18px;
}
.techowari-hero .techowari-search-form {
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}
.techowari-search-input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--tw-border);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  color: var(--tw-ink);
}
.techowari-search-input:focus {
  outline: 2px solid var(--tw-accent);
  outline-offset: 1px;
}
.techowari-search-button {
  border: none;
  border-radius: 8px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: var(--tw-accent);
  cursor: pointer;
}
.techowari-search-button:hover {
  background: #1e40af;
}

/* 都道府県ページ：市区町村・区の階層リスト */
.techowari-region-tree {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 4px 24px;
}
.techowari-region-tree-item {
  border-bottom: 1px solid #f0f1f3;
  padding: 10px 0;
}
.techowari-region-tree-item > a {
  font-size: 14px;
  font-weight: 700;
  color: var(--tw-ink);
  text-decoration: none;
}
.techowari-region-tree-item > a:hover {
  color: var(--tw-accent);
  text-decoration: underline;
}
.techowari-region-tree-sub {
  list-style: none;
  margin: 6px 0 0;
  padding: 0 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.techowari-region-tree-sub li::before {
  content: "・";
  color: var(--tw-muted);
  margin-right: 2px;
}
.techowari-region-tree-sub a {
  font-size: 13px;
  color: var(--tw-muted);
  text-decoration: none;
}
.techowari-region-unclassified > span {
  font-size: 13px;
  color: var(--tw-muted);
}
.techowari-region-tree-sub a:hover {
  color: var(--tw-accent);
  text-decoration: underline;
}

/* 市区町村の切り替え（地域アーカイブページ上部） */
.techowari-city-switcher {
  margin-bottom: 22px;
}
.techowari-city-switcher-label {
  display: block;
  font-size: 12px;
  color: var(--tw-muted);
  margin-bottom: 8px;
}
.techowari-city-switcher .techowari-chip.is-active {
  background: var(--tw-accent);
  border-color: var(--tw-accent);
  color: #fff;
}
.techowari-city-switcher .techowari-chip.is-active .techowari-chip-count {
  color: rgba(255, 255, 255, 0.8);
}

/* 絞り込みチップバー */
.techowari-filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}
.techowari-filter-label {
  font-size: 12px;
  color: var(--tw-muted);
  margin-right: 4px;
}
.techowari-filter-chip {
  display: inline-block;
  border: 1px solid var(--tw-border);
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 12px;
  color: var(--tw-ink);
  background: #fff;
  text-decoration: none;
}
.techowari-filter-chip:hover {
  border-color: var(--tw-accent);
}
.techowari-filter-chip.is-active {
  background: var(--tw-accent);
  border-color: var(--tw-accent);
  color: #fff;
}

/* サイドバー */
.techowari-sidebar {
  width: 260px;
  flex-shrink: 0;
  padding-top: 24px;
}
.techowari-sidebar-block {
  border: 1px solid var(--tw-border);
  border-radius: 10px;
  background: #fff;
  padding: 16px;
  margin-bottom: 16px;
}
.techowari-sidebar-block h3 {
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 10px;
}
.techowari-sidebar-block .techowari-search-form {
  margin-top: 0;
  flex-direction: column;
}
.techowari-sidebar-block .techowari-search-button {
  width: 100%;
}
.techowari-sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.techowari-sidebar-list a {
  font-size: 13px;
  color: var(--tw-ink);
  text-decoration: none;
}
.techowari-sidebar-list a:hover {
  color: var(--tw-accent);
  text-decoration: underline;
}
.techowari-sidebar-count {
  font-size: 11px;
  color: var(--tw-muted);
}
.techowari-sidebar-empty {
  font-size: 12px;
  color: var(--tw-muted);
  margin: 0;
}
.techowari-sidebar-more {
  display: inline-block;
  margin-top: 10px;
  font-size: 12px;
  color: var(--tw-accent);
  text-decoration: none;
}
.techowari-sidebar-more:hover {
  text-decoration: underline;
}

/* フッター注記 */
.techowari-footer-note {
  background: #f3f4f6;
  border-top: 1px solid #d1d5db;
  padding: 20px 16px;
}
.techowari-footer-note-inner {
  max-width: 900px;
  margin: 0 auto;
}
.techowari-footer-note p {
  margin: 0;
  font-size: 12px;
  line-height: 1.8;
  color: #6b7280;
}

/* 地図風ナビゲーション（地域から探す） */
.techowari-map-title {
  margin-bottom: 16px;
}
.techowari-map {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-areas:
    ".        .        hokkaido"
    ".        tohoku   ."
    "chugoku  kinki    kanto"
    "shikoku  .        chubu"
    "kyushu   .        .";
  gap: 10px;
  background: #eef2ff;
  border: 1px solid #dbe3fb;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 24px;
}
.techowari-map-item {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 60px;
  border-radius: 14px;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 700;
  background: #fff;
  border: 1px solid transparent;
  color: var(--tw-ink);
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.techowari-map-item:hover {
  transform: translateY(-3px);
  border-color: var(--tw-accent);
  color: var(--tw-accent);
  box-shadow: 0 10px 22px rgba(29, 78, 216, .14);
}
.techowari-map-item.is-empty {
  color: #b8bfcc;
  background: #f4f6fb;
  border-style: dashed;
  border-color: var(--tw-border);
  box-shadow: none;
  cursor: default;
  transform: none;
}
.techowari-map-hokkaido { grid-area: hokkaido; background: linear-gradient(135deg,#dbeafe,#eff6ff); }
.techowari-map-tohoku   { grid-area: tohoku; background: linear-gradient(135deg,#dcfce7,#f0fdf4); }
.techowari-map-kanto    { grid-area: kanto; background: linear-gradient(135deg,#fee2e2,#fff1f2); }
.techowari-map-chubu    { grid-area: chubu; background: linear-gradient(135deg,#fef9c3,#fffbeb); }
.techowari-map-kinki    { grid-area: kinki; background: linear-gradient(135deg,#ede9fe,#f5f3ff); }
.techowari-map-chugoku  { grid-area: chugoku; background: linear-gradient(135deg,#cffafe,#ecfeff); }
.techowari-map-shikoku  { grid-area: shikoku; background: linear-gradient(135deg,#fce7f3,#fdf2f8); }
.techowari-map-kyushu   { grid-area: kyushu; background: linear-gradient(135deg,#ffedd5,#fff7ed); }
.techowari-map-item.is-empty { background: #f4f6fb; }

/* 都道府県を直接選べる日本地図 */
.techowari-japan-map-wrap {
  position: relative;
  max-width: 760px;
  margin: 0 auto 26px;
  padding: 42px 18px 16px;
  overflow: hidden;
  border: 2px solid #ed7a24;
  border-radius: 14px;
  background:
    linear-gradient(rgba(255,255,255,.2), rgba(255,255,255,.2)),
    #eaf5fc;
  box-shadow: 0 10px 28px rgba(72, 98, 120, .1);
}
.techowari-japan-map-wrap::before {
  content: "地図から探す";
  position: absolute;
  top: 0;
  left: 0;
  padding: 7px 14px 8px;
  border-radius: 0 0 9px 0;
  background: #ed6b16;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .02em;
}
.techowari-japan-map-guide,
.techowari-japan-map-note {
  margin: 0;
  color: #566676;
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}
.techowari-japan-map-guide { margin-bottom: 4px; }
.techowari-japan-map-note { margin-top: 4px; }
.techowari-japan-map {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
  overflow: visible;
}
.techowari-prefecture-shape {
  fill: #f6c453;
  stroke: #fff8e8;
  stroke-width: 7;
  vector-effect: non-scaling-stroke;
  transition: fill .15s ease, filter .15s ease, transform .15s ease;
  transform-box: fill-box;
  transform-origin: center;
}
.techowari-prefecture-hokkaido { fill: #ffd46a; }
.techowari-prefecture-tohoku   { fill: #f7c65a; }
.techowari-prefecture-kanto    { fill: #efb54b; }
.techowari-prefecture-chubu    { fill: #f5cc61; }
.techowari-prefecture-kinki    { fill: #eeb349; }
.techowari-prefecture-chugoku  { fill: #f3c25a; }
.techowari-prefecture-shikoku  { fill: #f8d473; }
.techowari-prefecture-kyushu   { fill: #efb846; }
.techowari-prefecture-shape.is-empty {
  fill: #d9e1e7;
  stroke: #f4f7f9;
}
.techowari-prefecture-link:hover .techowari-prefecture-shape,
.techowari-prefecture-link:focus .techowari-prefecture-shape {
  fill: #e96f21;
  filter: drop-shadow(0 7px 7px rgba(133, 79, 27, .28));
  transform: scale(1.015);
}
.techowari-prefecture-link:focus { outline: none; }
.techowari-prefecture-link:focus-visible .techowari-prefecture-shape {
  stroke: #214f77;
  stroke-width: 12;
}
.techowari-map-label-link rect {
  fill: rgba(255,255,255,.96);
  stroke: #aeb9c3;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 4px 4px rgba(49, 71, 88, .12));
  transition: fill .15s ease, stroke .15s ease;
}
.techowari-map-label-link text {
  fill: #2f3d49;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 48px;
  font-weight: 800;
  pointer-events: none;
}
.techowari-map-label-link:hover rect,
.techowari-map-label-link:focus rect {
  fill: #fff7e9;
  stroke: #ed6b16;
}
.techowari-map-label-link:focus { outline: none; }
.techowari-map-label-link:focus-visible rect {
  stroke: #214f77;
  stroke-width: 8;
}

@media (max-width: 560px) {
  .techowari-map {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "hokkaido tohoku"
      "kanto    chubu"
      "kinki    chugoku"
      "shikoku  kyushu";
  }
  .techowari-japan-map-wrap {
    margin-right: -6px;
    margin-left: -6px;
    padding: 40px 6px 12px;
    border-width: 1px;
    border-radius: 11px;
  }
  .techowari-japan-map-guide,
  .techowari-japan-map-note { font-size: 10px; }
  .techowari-map-label-link text { font-size: 54px; }
  .techowari-prefecture-shape { stroke-width: 5; }
}

.techowari-district-list {
  border-top: 1px solid var(--tw-border);
  padding-top: 16px;
}

/* 目的から探す（アイコン付きリスト） */
.techowari-purpose-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
@media (max-width: 560px) {
  .techowari-purpose-grid {
    grid-template-columns: 1fr;
  }
}
.techowari-purpose-item {
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--tw-border);
  border-radius: 14px;
  background: #fff;
  padding: 16px 18px;
  text-decoration: none;
  color: var(--tw-ink);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.techowari-purpose-item:hover {
  transform: translateY(-3px);
  border-color: transparent;
  box-shadow: 0 12px 26px rgba(29, 78, 216, .12);
}
.techowari-purpose-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--tw-accent), var(--tw-accent-2));
  color: #fff;
  box-shadow: 0 6px 14px rgba(124, 58, 237, .25);
}
.techowari-purpose-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.techowari-purpose-name {
  font-size: 14px;
  font-weight: 800;
}
.techowari-purpose-count {
  font-size: 11px;
  color: var(--tw-muted);
}

/*
 * Cocoonテーマ標準のサイドバー（#sidebar）を非表示にする。
 * このプラグインのページは独自サイドバー(.techowari-sidebar)を表示しているため、
 * テーマ側の標準サイドバーが追加のカラムとして出てしまうのを防ぐ。
 * このCSS自体がてちょ割の対象ページでしか読み込まれないため、
 * #sidebarを直接指定しても安全（他のページには影響しない）。
 */
#sidebar {
  display: none !important;
}

/* ----------------------------------------------------------
 * v2.0: じゃらん型の「探す」を中心にしたトップページ
 * ---------------------------------------------------------- */
.techowari-front-page {
  display: block;
  max-width: 1120px;
}
.techowari-front-page .techowari-wrap {
  width: 100%;
}
.techowari-front-page .site-main {
  width: 100%;
}
.techowari-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  padding: 11px 14px;
  border: 1px solid #dbe3fb;
  border-radius: 12px;
  background: #fff;
  color: #536078;
  font-size: 12px;
  line-height: 1.6;
}
.techowari-notice-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 50%;
  background: #eef2ff;
  color: var(--tw-accent);
  font-weight: 800;
}
.techowari-hero-kicker {
  display: inline-block;
  margin: 0 0 9px;
  color: var(--tw-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
}
.techowari-quick-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  margin: -16px auto 32px;
  padding: 0 12px;
  position: relative;
  z-index: 2;
  max-width: 800px;
}
.techowari-quick-item {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 94px;
  padding: 12px 6px;
  border: 1px solid #dbe3fb;
  border-right: 0;
  background: #fff;
  color: #30384a;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 12px 30px rgba(29, 78, 216, .10);
}
.techowari-quick-item:first-child { border-radius: 16px 0 0 16px; }
.techowari-quick-item:last-child {
  border-right: 1px solid #dbe3fb;
  border-radius: 0 16px 16px 0;
}
.techowari-quick-item:hover {
  color: var(--tw-accent);
  background: #f8faff;
}
.techowari-quick-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: var(--tw-accent);
}
.techowari-quick-icon svg,
.techowari-mobile-nav-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.techowari-section-lead {
  margin: -8px 0 18px;
  color: var(--tw-muted);
  font-size: 12px;
}
.techowari-region-section {
  border-color: #dbe3fb;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(29, 78, 216, .06);
}
.techowari-region-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  max-width: 430px;
  margin: 0 0 18px;
  padding: 4px;
  border: 1px solid #dbe3fb;
  border-radius: 12px;
  background: #f4f6ff;
}
.techowari-region-tab {
  min-height: 42px;
  padding: 8px 14px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--tw-muted);
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.techowari-region-tab.is-active {
  background: #fff;
  color: var(--tw-accent);
  box-shadow: 0 3px 10px rgba(29, 78, 216, .12);
}
.techowari-region-tab:focus-visible {
  outline: 3px solid rgba(79, 70, 229, .22);
  outline-offset: 2px;
}
.techowari-region-panel[hidden] {
  display: none !important;
}
.techowari-google-map {
  width: 100%;
  height: 480px;
  overflow: hidden;
  border: 1px solid #dbe3fb;
  border-radius: 14px;
  background: #eef2ff;
}
.techowari-map-status {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #f6f8ff;
  color: var(--tw-muted);
  font-size: 12px;
  text-align: center;
}
.techowari-map-help {
  margin: 10px 0 0;
  color: var(--tw-muted);
  font-size: 11px;
  line-height: 1.7;
}
.techowari-map-popup {
  display: flex;
  max-width: 250px;
  flex-direction: column;
  gap: 5px;
  padding: 3px 0;
  color: #1f2937;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.techowari-map-popup strong {
  font-size: 14px;
  line-height: 1.5;
}
.techowari-map-popup span {
  color: #6b7280;
  font-size: 11px;
  line-height: 1.5;
}
.techowari-map-popup a {
  margin-top: 4px;
  color: #4f46e5;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.techowari-latest-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.techowari-latest-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 132px;
  padding: 17px 38px 17px 17px;
  border: 1px solid var(--tw-border);
  border-radius: 14px;
  background: #fff;
  color: var(--tw-ink);
  text-decoration: none;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.techowari-latest-card:hover {
  transform: translateY(-2px);
  border-color: var(--tw-accent);
  box-shadow: 0 10px 24px rgba(29, 78, 216, .10);
}
.techowari-latest-meta {
  color: var(--tw-accent);
  font-size: 10px;
  font-weight: 800;
}
.techowari-latest-title {
  margin-top: 7px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
}
.techowari-latest-region {
  margin-top: auto;
  padding-top: 10px;
  color: var(--tw-muted);
  font-size: 11px;
}
.techowari-latest-arrow {
  position: absolute;
  top: 50%;
  right: 16px;
  color: #9aa4b6;
  font-size: 26px;
  transform: translateY(-50%);
}

/* お役立ちガイド（施設検索の導線を邪魔しない、トップ最下部の読み物カード） */
.techowari-guide-section {
  margin-bottom: 34px;
}
.techowari-guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.techowari-guide-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  min-height: 132px;
  padding: 17px 34px 17px 16px;
  border: 1px solid var(--tw-border);
  border-radius: 14px;
  background: #fff;
  color: var(--tw-ink);
  text-decoration: none;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.techowari-guide-card:hover {
  transform: translateY(-2px);
  border-color: var(--tw-accent);
  box-shadow: 0 10px 24px rgba(29, 78, 216, .10);
}
.techowari-guide-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--tw-accent), var(--tw-accent-2));
  color: #fff;
  box-shadow: 0 5px 12px rgba(124, 58, 237, .20);
}
.techowari-guide-icon svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}
.techowari-guide-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 6px;
}
.techowari-guide-title {
  display: -webkit-box;
  overflow: hidden;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.techowari-guide-excerpt {
  display: -webkit-box;
  overflow: hidden;
  color: var(--tw-muted);
  font-size: 11px;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.techowari-guide-arrow {
  position: absolute;
  top: 50%;
  right: 14px;
  color: #9aa4b6;
  font-size: 24px;
  transform: translateY(-50%);
}
.techowari-guide-more-wrap {
  margin-top: 18px;
  text-align: center;
}
.techowari-guide-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 22px;
  border: 1px solid #dbe3fb;
  border-radius: 999px;
  background: #fff;
  color: var(--tw-accent);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: color .15s, background .15s, border-color .15s;
}
.techowari-guide-more:hover {
  border-color: var(--tw-accent);
  background: #f8faff;
  color: var(--tw-accent-2);
}
.techowari-mobile-nav { display: none; }

@media (max-width: 760px) {
  body { padding-bottom: 72px; }
  .techowari-page {
    padding-left: 12px;
    padding-right: 12px;
  }
  .techowari-front-page .techowari-wrap { padding-top: 12px; }
  .techowari-notice { margin-bottom: 10px; }
  .techowari-hero {
    margin-left: -12px;
    margin-right: -12px;
    padding: 34px 18px 46px;
    border-radius: 0 0 26px 26px;
  }
  .techowari-hero .techowari-h1 {
    font-size: clamp(24px, 7vw, 31px);
    line-height: 1.35;
  }
  .techowari-hero .techowari-lead {
    font-size: 13px;
    line-height: 1.8;
  }
  .techowari-hero .techowari-search-form {
    flex-direction: row;
    gap: 4px;
    padding: 5px;
  }
  .techowari-hero .techowari-search-button {
    padding-left: 18px;
    padding-right: 18px;
  }
  .techowari-quick-nav {
    margin-top: -26px;
    margin-bottom: 26px;
    padding: 0;
  }
  .techowari-quick-item {
    min-height: 84px;
    font-size: 10px;
  }
  .techowari-quick-icon {
    width: 29px;
    height: 29px;
  }
  .techowari-card { padding: 17px 14px; }
  .techowari-region-tabs {
    max-width: none;
    margin-bottom: 14px;
  }
  .techowari-region-tab {
    min-height: 44px;
    padding: 7px 8px;
    font-size: 12px;
  }
  .techowari-google-map {
    height: 360px;
    border-radius: 11px;
  }
  .techowari-purpose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .techowari-purpose-item {
    align-items: flex-start;
    gap: 9px;
    padding: 13px 10px;
  }
  .techowari-purpose-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
  }
  .techowari-purpose-name { font-size: 12px; }
  .techowari-latest-grid { grid-template-columns: 1fr; }
  .techowari-latest-card { min-height: 104px; }
  .techowari-guide-grid { grid-template-columns: 1fr; }
  .techowari-guide-card {
    min-height: 0;
    padding: 15px 34px 15px 14px;
  }
  .techowari-guide-excerpt { -webkit-line-clamp: 2; }
  .techowari-mobile-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: 64px;
    padding-bottom: env(safe-area-inset-bottom);
    border-top: 1px solid #dfe3eb;
    background: rgba(255,255,255,.97);
    box-shadow: 0 -8px 24px rgba(17,24,39,.08);
    backdrop-filter: blur(12px);
  }
  .techowari-mobile-nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: #4b5563;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
  }
  .techowari-mobile-nav a:hover,
  .techowari-mobile-nav a:focus { color: var(--tw-accent); }
  .techowari-mobile-nav-icon {
    display: block;
    width: 23px;
    height: 23px;
  }
}
.techowari-cluster-badge {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  padding: 4px;
  border-radius: 50%;
  background: #3157ce;
  color: #fff;
  border: 3px solid #fff;
  box-shadow: 0 2px 6px #0003;
  font-weight: 700;
}
.techowari-map-retry {
  margin: 8px 0;
  padding: 10px 16px;
  border: 1px solid #3157ce;
  border-radius: 8px;
  background: #fff;
  color: #2445aa;
  cursor: pointer;
}
.techowari-map-retry[hidden] { display: none; }
.techowari-region-tab:focus-visible, .techowari-map-retry:focus-visible {
  outline: 3px solid #3157ce;
  outline-offset: 3px;
}

/* 現在地・お気に入り・経路・情報修正 */
.techowari-facility-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}
.techowari-favorite-button,
.techowari-directions-button,
.techowari-nearby-button,
.techowari-report-submit {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  border: 1px solid #c7d2fe;
  border-radius: 10px;
  background: #fff;
  color: #1d4ed8;
  padding: 9px 14px;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
}
.techowari-favorite-button:hover,
.techowari-directions-button:hover,
.techowari-nearby-button:hover {
  border-color: #1d4ed8;
  background: #eff6ff;
  color: #1e40af;
}
.techowari-favorite-button.is-saved {
  border-color: #f9a8d4;
  background: #fdf2f8;
  color: #be185d;
}
.techowari-favorite-button > span:first-child { font-size: 19px; line-height: 1; }
.techowari-favorite-button-large { min-height: 46px; }
.techowari-directions-button { border-color: #bfdbfe; background: #eff6ff; }
.techowari-directions-button svg { width: 20px; height: 20px; fill: currentColor; }
.techowari-nearby-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0 0 12px;
}
.techowari-nearby-toolbar > span { color: #6b7280; font-size: 11px; }
.techowari-nearby-button { border-color: #1d4ed8; background: #1d4ed8; color: #fff; }
.techowari-nearby-button:hover { background: #1e40af; color: #fff; }
.techowari-nearby-button:disabled { opacity: .65; cursor: wait; }
.techowari-user-location {
  display: block;
  width: 18px;
  height: 18px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #2563eb;
  box-shadow: 0 0 0 2px #2563eb, 0 2px 7px rgba(0,0,0,.25);
}
.techowari-nearby-results { margin-top: 18px; }
.techowari-nearby-results:empty { display: none; }
.techowari-nearby-results h3 { margin: 0 0 10px; font-size: 16px; }
.techowari-nearby-list { display: grid; gap: 9px; }
.techowari-nearby-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px;
  border: 1px solid #dbe3fb;
  border-radius: 10px;
  background: #fff;
}
.techowari-nearby-card > div:first-child { min-width: 0; }
.techowari-nearby-title { color: #111827; font-size: 14px; font-weight: 800; text-decoration: none; }
.techowari-nearby-title:hover { color: #1d4ed8; text-decoration: underline; }
.techowari-nearby-meta { margin: 4px 0 0; color: #6b7280; font-size: 11px; overflow-wrap: anywhere; }
.techowari-nearby-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.techowari-nearby-actions > a { color: #1d4ed8; font-size: 12px; font-weight: 700; white-space: nowrap; }
.techowari-nearby-actions .techowari-favorite-button { min-height: 36px; padding: 6px 9px; font-size: 11px; }
.techowari-map-popup { min-width: 190px; max-width: 270px; }
.techowari-map-popup > a { display: block; margin-top: 7px; }
.techowari-map-popup .techowari-map-favorite { margin-top: 9px; min-height: 34px; padding: 5px 9px; font-size: 11px; }
.techowari-map-popup .techowari-map-favorite span { color: inherit; font-size: inherit; }

.techowari-favorites-list { display: grid; gap: 10px; }
.techowari-favorite-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border: 1px solid #dbe3fb;
  border-radius: 12px;
  background: #fff;
}
.techowari-favorite-card-link { display: flex; flex: 1; min-width: 0; flex-direction: column; color: #111827; text-decoration: none; }
.techowari-favorite-card-link strong { font-size: 14px; }
.techowari-favorite-card-link span { margin-top: 4px; color: #6b7280; font-size: 11px; overflow-wrap: anywhere; }
.techowari-favorite-remove { flex-shrink: 0; }

.techowari-report-card {
  margin: 22px 0;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #fff;
}
.techowari-report-card summary { padding: 14px 16px; color: #374151; font-size: 13px; font-weight: 700; cursor: pointer; }
.techowari-report-body { padding: 0 16px 18px; border-top: 1px solid #eef0f3; }
.techowari-report-body > p { color: #6b7280; font-size: 12px; line-height: 1.7; }
.techowari-report-form { display: grid; gap: 12px; }
.techowari-report-form label { display: grid; gap: 5px; color: #374151; font-size: 12px; font-weight: 700; }
.techowari-report-form select,
.techowari-report-form textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #111827;
  padding: 10px;
  font: inherit;
  font-size: 14px;
}
.techowari-report-form textarea { min-height: 120px; resize: vertical; }
.techowari-report-privacy { margin: -2px 0 0; color: #6b7280; font-size: 11px; }
.techowari-report-submit { justify-self: start; border-color: #1d4ed8; background: #1d4ed8; color: #fff; }
.techowari-report-submit:hover { background: #1e40af; }
.techowari-report-message { padding: 10px 12px; border-radius: 8px; }
.techowari-report-message.is-success { background: #ecfdf5; color: #166534; }
.techowari-report-message.is-error { background: #fef2f2; color: #991b1b; }
.techowari-report-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

@media (max-width: 600px) {
  .techowari-quick-nav { grid-template-columns: repeat(auto-fit, minmax(62px, 1fr)); }
  .techowari-quick-item { padding-left: 3px; padding-right: 3px; }
  .techowari-facility-actions { display: grid; grid-template-columns: 1fr; }
  .techowari-facility-actions > * { width: 100%; }
  .techowari-nearby-card { align-items: flex-start; flex-direction: column; }
  .techowari-nearby-actions { width: 100%; justify-content: flex-start; }
  .techowari-favorite-card { align-items: flex-start; flex-direction: column; }
  .techowari-favorite-remove { width: 100%; }
}

/* v2.5.2: 一覧カードの割引バッジを短く・幅を制限、長い割引内容は枠で表示 */
.techowari-row-card > div:first-child {
  flex: 1 1 auto;
  min-width: 0;
}
.techowari-rate-badge--list {
  flex: 0 1 auto;
  max-width: 50%;
  text-align: center;
  line-height: 1.5;
}
.techowari-rate-long {
  background: #fff;
  border-left: 4px solid var(--tw-rate-bg);
  border-radius: 6px;
  padding: 10px 12px;
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  white-space: pre-line;
}
@media (max-width: 560px) {
  .techowari-row-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .techowari-rate-badge--list {
    max-width: 100%;
    text-align: left;
  }
}

/* v2.6.0 郵便番号検索 */
.techowari-zip-hero { margin-top: 14px; }
.techowari-zip-hero-label { margin: 0 0 6px; font-size: 14px; font-weight: 700; }
.techowari-zip-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; justify-content: center; }
.techowari-zip-form .techowari-search-button { min-width: 140px; }
.techowari-zip-input { flex: 1 1 160px; min-width: 0; padding: 10px 12px; border: 1px solid #c9d3df; border-radius: 8px; font-size: 16px; }
.techowari-zip-radius { flex: 0 0 auto; padding: 10px 8px; border: 1px solid #c9d3df; border-radius: 8px; font-size: 16px; background: #fff; }
.techowari-zip-form .techowari-search-button { flex: 0 0 auto; }
.techowari-sidebar .techowari-zip-form { flex-direction: column; }
.techowari-zip-box { margin: 12px 0 16px; }
.techowari-zip-note { margin: 8px 0 12px; font-size: 14px; color: #5b6b7b; }
.techowari-zip-credit { margin: 20px 0 0; font-size: 12px; color: #6b7b8b; }
.techowari-card-distance { margin-top: 4px; font-size: 13px; font-weight: 700; color: #1a6b52; }
.techowari-zip-pagination { margin-top: 16px; }
EOF
grep -n "techowari_render_zip_form" templates/front-page.php shogaisha-search-templates.php; ruby -e 1; which php

/* v2.7.2 同じ名前の施設をまとめたカード */
.techowari-group-card{margin-bottom:12px}
.techowari-group-card .techowari-row-card{margin-bottom:0}
.techowari-group-card.is-multi .techowari-row-card{border-bottom-left-radius:0;border-bottom-right-radius:0}
.techowari-card-multi{margin-top:4px;font-size:13px;font-weight:700;color:#4338ca}
.techowari-group-prefs{border:1px solid #e5e7eb;border-top:0;border-radius:0 0 14px 14px;background:#fff;padding:8px 14px}
.techowari-group-prefs summary{cursor:pointer;font-size:14px;font-weight:700;color:#4f46e5;padding:4px 0}
.techowari-group-prefs .techowari-chip-list{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
