.subpage-hero {
  background:
    linear-gradient(rgba(10, 20, 15, 0.72), rgba(10, 20, 15, 0.75)),
    url("https://images.unsplash.com/photo-1514395462725-fb4566210144?w=1800&auto=format&fit=crop&q=80") center / cover no-repeat;
  padding: 80px 24px 60px;
  text-align: center;
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.subpage-hero-icon { width: 64px; height: 64px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.25); border-radius: 16px; display: flex; align-items: center; justify-content: center; color: var(--gold); margin-bottom: 8px; }
.subpage-hero-icon [data-lucide] { width: 30px; height: 30px; }
.subpage-hero h1 { font-family: var(--font-en); font-size: 2.8rem; line-height: 1.2; }
.subpage-hero p { color: rgba(255,255,255,0.7); font-size: 1rem; }
.back-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; color: var(--gold); font-size: 0.88rem; font-weight: 500; transition: gap 0.2s; }
.back-link:hover { color: var(--gold); gap: 10px; }
.back-link [data-lucide] { width: 15px; height: 15px; }
.subpage-content { padding: 80px 0; }
.coming-soon-box { max-width: 480px; margin: 0 auto; text-align: center; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 60px 40px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.coming-soon-box [data-lucide] { width: 40px; height: 40px; color: var(--green); opacity: 0.5; }
.coming-soon-box h2 { font-family: var(--font-en); font-size: 1.6rem; color: var(--dark); }
.coming-soon-box p { color: var(--text-light); font-size: 0.9rem; line-height: 1.7; }
/* SIM PAGE */
.sim-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 40px; }
.sim-compare-card { border-radius: var(--radius); padding: 24px; border: 2px solid var(--border); }
.esim-card { border-color: #5baef0; background: #f0f7ff; }
.physical-card { border-color: var(--green); background: #f0faf5; }
.sim-compare-header { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.sim-compare-header [data-lucide] { width: 22px; height: 22px; }
.esim-card .sim-compare-header { color: #1e4d8c; }
.physical-card .sim-compare-header { color: var(--green); }
.sim-compare-header h3 { font-size: 1.1rem; font-family: var(--font-en); }
.sim-compare-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.sim-compare-list li { font-size: 0.845rem; color: var(--text); display: flex; align-items: center; gap: 8px; }
.sim-compare-list li [data-lucide] { width: 14px; height: 14px; flex-shrink: 0; }
.esim-card .sim-compare-list li [data-lucide="check"] { color: #1e4d8c; }
.esim-card .sim-compare-list li [data-lucide="x"] { color: #ef4444; }
.physical-card .sim-compare-list li [data-lucide="check"] { color: var(--green); }
.physical-card .sim-compare-list li [data-lucide="x"] { color: #ef4444; }
.sim-best-for { font-size: 0.78rem; font-weight: 700; padding: 4px 12px; border-radius: 999px; display: inline-block; }
.esim-card .sim-best-for { background: #1e4d8c; color: white; }
.physical-card .sim-best-for { background: var(--green); color: white; }
.sim-section-title { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; color: var(--dark); }
.sim-section-title [data-lucide] { width: 22px; height: 22px; color: var(--green); }
.sim-section-title h2 { font-family: var(--font-en); font-size: 1.3rem; }

/* SIM comparison table */
.sim-table-wrap { margin-top: 48px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; }
.sim-table-wrap h3 { font-size: 1rem; color: var(--dark); margin-bottom: 16px; display: flex; align-items: center; gap: 8px; font-family: var(--font-en); }
.sim-table-wrap h3 [data-lucide] { width: 18px; height: 18px; color: var(--green); }
.sim-table-scroll { overflow-x: auto; }
.sim-table { width: 100%; border-collapse: collapse; font-size: 0.855rem; }
.sim-table th { background: var(--bg-alt); padding: 10px 14px; text-align: left; font-size: 0.78rem; font-weight: 700; color: var(--text-light); border-bottom: 1px solid var(--border); white-space: nowrap; }
.sim-table td { padding: 12px 14px; border-bottom: 1px solid var(--border); color: var(--text); white-space: nowrap; }
.sim-table tr:last-child td { border-bottom: none; }
.sim-table tr:hover td { background: var(--bg); }
.table-tag { font-size: 0.7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.esim-tag { background: #e3f0ff; color: #1e4d8c; }
.physical-tag { background: #e8f5ed; color: var(--green); }
@media (max-width: 700px) { .sim-compare { grid-template-columns: 1fr; } }
/* TOURIST SPOTS PAGE */
.kanko-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.kanko-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; display: flex; flex-direction: column; gap: 14px; transition: box-shadow 0.2s, transform 0.2s; }
.kanko-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.kanko-header { display: flex; align-items: flex-start; gap: 14px; }
.kanko-icon { width: 46px; height: 46px; background: #e8f5ed; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--green); flex-shrink: 0; }
.kanko-icon [data-lucide] { width: 22px; height: 22px; }
.kanko-header h3 { font-size: 1rem; color: var(--dark); margin-bottom: 4px; }
.kanko-tag { display: inline-block; background: #fff8e1; color: #9a6700; font-size: 0.72rem; font-weight: 700; padding: 2px 10px; border-radius: 999px; }
.kanko-card > p { font-size: 0.875rem; color: var(--text-light); line-height: 1.7; }
.kanko-tips { display: flex; flex-direction: column; gap: 7px; flex: 1; }
.kanko-tips li { font-size: 0.835rem; color: var(--text); display: flex; align-items: center; gap: 8px; }
.kanko-tips li [data-lucide] { width: 14px; height: 14px; color: var(--green); flex-shrink: 0; }
.kanko-tips li [data-lucide="alert-triangle"] { color: #e8a000; }
@media (max-width: 700px) { .kanko-grid { grid-template-columns: 1fr; } }

/* WEATHER PAGE */
.kishou-intro { display: flex; align-items: flex-start; gap: 20px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 32px; }
.kishou-intro-icon { width: 46px; height: 46px; background: #e8f5ed; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--green); flex-shrink: 0; }
.kishou-intro-icon [data-lucide] { width: 22px; height: 22px; }
.kishou-intro h2 { font-family: var(--font-en); font-size: 1.3rem; color: var(--dark); margin-bottom: 10px; }
.kishou-intro p { font-size: 0.9rem; color: var(--text); line-height: 1.8; }

.season-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.season-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.season-summer { border-top: 3px solid #f59e0b; }
.season-autumn { border-top: 3px solid #ea580c; }
.season-winter { border-top: 3px solid #3b82f6; }
.season-spring { border-top: 3px solid #22c55e; }
.season-header { display: flex; align-items: center; gap: 14px; }
.season-icon { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.season-icon [data-lucide] { width: 22px; height: 22px; }
.season-summer .season-icon { background: #fff7ed; color: #f59e0b; }
.season-autumn .season-icon { background: #fff4ee; color: #ea580c; }
.season-winter .season-icon { background: #eff6ff; color: #3b82f6; }
.season-spring .season-icon { background: #f0fdf4; color: #22c55e; }
.season-header h3 { font-size: 1rem; color: var(--dark); margin-bottom: 3px; }
.season-months { font-size: 0.78rem; color: var(--text-light); }
.season-temp { display: flex; gap: 12px; }
.temp-max, .temp-min { font-size: 0.82rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.temp-max { background: #fff3cd; color: #9a6700; }
.temp-min { background: #e3f0ff; color: #1e4d8c; }
.season-tips { display: flex; flex-direction: column; gap: 7px; }
.season-tips li { font-size: 0.835rem; color: var(--text); display: flex; align-items: center; gap: 8px; }
.season-tips li [data-lucide] { width: 14px; height: 14px; color: var(--green); flex-shrink: 0; }

.kishou-tips-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kishou-tip-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.kishou-tip-icon { width: 44px; height: 44px; background: #e8f5ed; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--green); }
.kishou-tip-icon [data-lucide] { width: 22px; height: 22px; }
.kishou-tip-uv .kishou-tip-icon { background: #fff7ed; color: #f59e0b; }
.kishou-tip-rain .kishou-tip-icon { background: #eff6ff; color: #3b82f6; }
.kishou-tip-card h3 { font-size: 0.95rem; color: var(--dark); }
.kishou-tip-card p { font-size: 0.855rem; color: var(--text-light); line-height: 1.75; }

/* TRANSPORT PAGE */
.myki-section { margin-top: 0; }
.myki-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; }
.myki-card-top { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.myki-icon { width: 46px; height: 46px; background: #e8f5ed; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--green); flex-shrink: 0; }
.myki-icon [data-lucide] { width: 22px; height: 22px; }
.myki-card-top h3 { font-size: 1rem; color: var(--dark); margin-bottom: 6px; }
.myki-card-top p { font-size: 0.875rem; color: var(--text-light); line-height: 1.7; }
.myki-details { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-top: 1px solid var(--border); padding-top: 20px; }
.myki-detail-item { display: flex; align-items: flex-start; gap: 12px; }
.myki-detail-item [data-lucide] { width: 18px; height: 18px; color: var(--green); flex-shrink: 0; margin-top: 2px; }
.myki-detail-item strong { display: block; font-size: 0.855rem; color: var(--dark); margin-bottom: 3px; }
.myki-detail-item span { font-size: 0.825rem; color: var(--text-light); line-height: 1.65; }

.transport-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.transport-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.transport-tram { border-top: 3px solid #2d7a4f; }
.transport-train { border-top: 3px solid #1e4d8c; }
.transport-bus { border-top: 3px solid #ea580c; }
.transport-taxi { border-top: 3px solid #9333ea; }
.transport-header { display: flex; align-items: center; gap: 14px; }
.transport-icon { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.transport-icon [data-lucide] { width: 22px; height: 22px; }
.transport-tram .transport-icon { background: #e8f5ed; color: var(--green); }
.transport-train .transport-icon { background: #e3f0ff; color: #1e4d8c; }
.transport-bus .transport-icon { background: #fff4ee; color: #ea580c; }
.transport-taxi .transport-icon { background: #faf0ff; color: #9333ea; }
.transport-header h3 { font-size: 1rem; color: var(--dark); margin-bottom: 3px; }
.transport-tag { font-size: 0.72rem; font-weight: 700; color: var(--text-light); }
.transport-desc { font-size: 0.855rem; color: var(--text-light); line-height: 1.7; }
.transport-details { display: flex; flex-direction: column; gap: 7px; }
.transport-details li { font-size: 0.835rem; color: var(--text); display: flex; align-items: center; gap: 8px; }
.transport-details li [data-lucide] { width: 14px; height: 14px; color: var(--green); flex-shrink: 0; }

@media (max-width: 700px) {
  .myki-details { grid-template-columns: 1fr; }
  .transport-grid { grid-template-columns: 1fr; }
}

/* FOOD PAGE */
.food-area-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.food-area-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.food-area-header { display: flex; flex-direction: column; gap: 4px; }
.food-area-tag { font-size: 0.72rem; font-weight: 700; color: var(--green); text-transform: uppercase; letter-spacing: 0.08em; }
.food-area-header h3 { font-size: 1rem; color: var(--dark); }
.food-area-location { display: flex; align-items: center; gap: 5px; font-size: 0.78rem; color: var(--text-light); }
.food-area-location [data-lucide] { width: 12px; height: 12px; }
.food-area-desc { font-size: 0.855rem; color: var(--text-light); line-height: 1.7; flex: 1; }
.price-badge { font-size: 0.75rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; display: inline-block; }
.price-budget { background: #e8f5ed; color: var(--green); }
.price-mid { background: #fff8e1; color: #9a6700; }
.price-high { background: #fef2f2; color: #dc2626; }

.supermarket-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.supermarket-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.supermarket-header { display: flex; align-items: center; gap: 12px; }
.supermarket-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.supermarket-icon [data-lucide] { width: 20px; height: 20px; }
.supermarket-woolworths { background: #e8f5ed; color: var(--green); }
.supermarket-coles { background: #fef2f2; color: #dc2626; }
.supermarket-aldi { background: #eff6ff; color: #1e4d8c; }
.supermarket-asian { background: #fff8e1; color: #9a6700; }
.supermarket-header h3 { font-size: 0.95rem; color: var(--dark); margin-bottom: 2px; }
.supermarket-type { font-size: 0.72rem; color: var(--text-light); }
.supermarket-card p { font-size: 0.835rem; color: var(--text-light); line-height: 1.7; }

@media (max-width: 900px) { .food-area-grid { grid-template-columns: 1fr 1fr; } .supermarket-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .food-area-grid { grid-template-columns: 1fr; } .supermarket-grid { grid-template-columns: 1fr; } }

/* WEATHER FORECAST WIDGET */
.weather-forecast-section {
  margin-top: 64px;
  background: linear-gradient(160deg, #0d2137 0%, #1a4a7a 50%, #0d2137 100%);
  border-radius: var(--radius);
  padding: 36px 32px 28px;
  position: relative;
  overflow: hidden;
}
.weather-forecast-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.04) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(255,255,255,0.06) 0%, transparent 50%);
  pointer-events: none;
}
.weather-forecast-section h3 {
  color: white;
  font-size: 1rem;
  font-family: var(--font-en);
  font-weight: 600;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}
.weather-forecast-section h3 [data-lucide] { width: 18px; height: 18px; color: #fbbf24; }
.weather-forecast-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  position: relative;
}
.forecast-month-card {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  padding: 14px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transition: background 0.2s;
}
.forecast-month-card:hover { background: rgba(255,255,255,0.15); }
.forecast-month-name { font-size: 0.75rem; font-weight: 700; color: rgba(255,255,255,0.6); letter-spacing: 0.04em; }
.forecast-icon { display: flex; align-items: center; justify-content: center; }
.forecast-icon [data-lucide] { width: 26px; height: 26px; }
.forecast-sun [data-lucide] { color: #fbbf24; }
.forecast-cloudsun [data-lucide] { color: #93c5fd; }
.forecast-rain [data-lucide] { color: #7dd3fc; }
.forecast-temp-max { font-size: 0.95rem; font-weight: 700; color: #fbbf24; }
.forecast-temp-min { font-size: 0.78rem; font-weight: 500; color: #93c5fd; }
.forecast-legend { display: flex; gap: 20px; margin-top: 20px; justify-content: flex-end; position: relative; }
.forecast-legend-max { font-size: 0.75rem; color: #fbbf24; font-weight: 600; }
.forecast-legend-min { font-size: 0.75rem; color: #93c5fd; font-weight: 600; }

@media (max-width: 700px) {
  .season-grid { grid-template-columns: 1fr; }
  .kishou-tips-grid { grid-template-columns: 1fr; }
  .kishou-intro { flex-direction: column; }
  .weather-forecast-grid { grid-template-columns: repeat(4, 1fr); }
}