/* JapanWheels Phase 8 — Content Pages. Minimal, unopinionated structural
   styles only; visual design is expected to come from the active theme
   (Astra child theme), same convention as stock.css/account.css. */

.jw-hero { text-align: center; padding: 2rem 1rem; }
.jw-hero-ctas, .jw-home-faq-cta .jw-hero-ctas { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1rem; }

/* Universal Page Banner (image + eyebrow/heading/subheading + CTAs),
   editable per-page from the WordPress Page edit screen (Page Banner
   meta box). [japanwheels_banner] shortcode output, and the Home hero
   when a banner is set on the Home page. */
.jw-page-banner {
	position: relative; text-align: center; padding: 4rem 1.5rem; margin-bottom: 2rem;
	background-size: cover; background-position: center; border-radius: 8px; color: #fff;
}
.jw-page-banner::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.45); border-radius: inherit; }
.jw-page-banner-inner, .jw-page-banner > *:not(.jw-page-banner-inner) { position: relative; z-index: 1; }
.jw-hero[style*="background-image"] { color: #fff; padding: 4rem 1.5rem; border-radius: 8px; background-size: cover; background-position: center; position: relative; }
.jw-hero[style*="background-image"]::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.45); border-radius: inherit; z-index: 0; }
.jw-hero[style*="background-image"] > * { position: relative; z-index: 1; }
.jw-banner-eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 700; margin: 0 0 .5rem; opacity: .9; }
.jw-banner-subheading { max-width: 640px; margin: 0 auto 1.25rem; font-size: 1.05rem; line-height: 1.6; }

.jw-featured-grid, .jw-guide-grid, .jw-guide-teaser-grid, .jw-benefits-grid, .jw-news-grid {
	display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 1rem 0;
}
.jw-featured-card, .jw-guide-card, .jw-news-card, .jw-benefit { border: 1px solid #e2e2e2; border-radius: 6px; padding: 1rem; }
.jw-featured-card img, .jw-news-card img { width: 100%; height: auto; border-radius: 4px; margin-bottom: .5rem; }

.jw-journey-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.jw-journey-steps li { border-left: 3px solid #c00; padding-left: .75rem; }

.jw-guide-teaser-card { display: flex; align-items: center; gap: .5rem; border: 1px solid #e2e2e2; border-radius: 6px; padding: .75rem 1rem; text-decoration: none; }
.jw-guide-flag { font-size: 1.5rem; }

.jw-fee-table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
.jw-fee-table th, .jw-fee-table td { text-align: left; padding: .6rem .75rem; border-bottom: 1px solid #e2e2e2; vertical-align: top; }
.jw-fee-desc { margin: .25rem 0 0; font-size: .9em; opacity: .8; }

.jw-faq-controls { margin-bottom: 1rem; }
.jw-faq-search { width: 100%; max-width: 480px; padding: .5rem .75rem; margin-bottom: .75rem; }
.jw-faq-filters { display: flex; flex-wrap: wrap; gap: .4rem; }
.jw-faq-filter { border: 1px solid #ccc; background: #fff; border-radius: 999px; padding: .3rem .9rem; cursor: pointer; }
.jw-faq-filter.is-active { background: #111; color: #fff; border-color: #111; }
.jw-faq-item { border-bottom: 1px solid #e2e2e2; }
.jw-faq-question { width: 100%; text-align: left; background: none; border: 0; padding: .9rem 0; font-weight: 600; cursor: pointer; }
.jw-faq-answer { display: none; padding-bottom: .9rem; }
.jw-faq-item.is-open .jw-faq-answer { display: block; }
.jw-faq-item[hidden] { display: none; }

.jw-contact-form form p { margin-bottom: .9rem; }
.jw-contact-form input[type=text], .jw-contact-form input[type=email], .jw-contact-form input[type=tel], .jw-contact-form select, .jw-contact-form textarea { width: 100%; max-width: 480px; padding: .5rem .6rem; }

.jw-notice { padding: .75rem 1rem; border-radius: 4px; margin-bottom: 1rem; }
.jw-notice.success { background: #eaf7ec; border: 1px solid #8fd19e; }
.jw-notice.error { background: #fdecea; border: 1px solid #f1a9a0; }

.jw-inspection-dialog { border: 1px solid #e2e2e2; border-radius: 6px; padding: .75rem 1rem; margin-top: .75rem; }
.jw-inspection-dialog summary { cursor: pointer; font-weight: 600; }
