/* fly-jpn theme: layout and chrome only. Components are styled by fly-jpn-core. */

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

body { font-variant-numeric: tabular-nums; -webkit-text-size-adjust: 100%; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }

/* ---------- Header: the red line band, like a station sign ---------- */
.fj-header {
	background: var(--wp--preset--color--surface);
	border-top: var(--wp--custom--line--band) solid var(--wp--preset--color--line-red);
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.fj-header__inner { min-height: 4rem; gap: 1rem; }
.fj-logo { display: inline-flex; align-items: center; gap: 0.55rem; text-decoration: none; color: var(--wp--preset--color--ink); }
.fj-logo__mark {
	display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem;
	border: 4px solid var(--wp--preset--color--line-red); border-radius: var(--wp--custom--radius--badge);
	font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.95rem; line-height: 1;
	background: #fff;
}
.fj-logo__name { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.3rem; letter-spacing: 0.01em; }
.fj-logo:focus-visible { outline: 2px solid var(--wp--preset--color--guide-blue); outline-offset: 4px; }
.fj-nav { font-size: 0.98rem; font-weight: 600; }
.fj-nav a { text-decoration: none; }
.fj-nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.fj-nav .wp-block-navigation-item__content { padding-block: 0.5rem; }

/* ---------- Main ---------- */
.fj-main { padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60); }
.fj-main--wide { padding-top: 0; }
.fj-main > .wp-block-post-title { margin-bottom: var(--wp--preset--spacing--30); }
.fj-crumb { margin-bottom: 0.25rem; color: var(--wp--preset--color--muted); }
.fj-crumb a { color: inherit; }
.fj-lede { font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: var(--wp--preset--color--ink); }

/* ---------- Home hero: headline beside the plan finder ---------- */
.fj-hero { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.fj-hero__grid { display: grid; gap: var(--wp--preset--spacing--40); align-items: start; }
@media (min-width: 960px) {
	.fj-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: var(--wp--preset--spacing--50); }
	.fj-hero__copy { position: sticky; top: 2rem; }
}
.fj-hero h1 { font-size: var(--wp--preset--font-size--huge); line-height: 1.12; margin: 0 0 1rem; max-width: 16ch; }
.fj-hero__sub { font-size: var(--wp--preset--font-size--large); line-height: 1.45; color: var(--wp--preset--color--muted); max-width: 34ch; margin: 0; }
.fj-hero__who { display: flex; gap: 0.75rem; align-items: center; margin-top: 1.5rem; font-size: 0.95rem; color: var(--wp--preset--color--muted); }
.fj-hero__who strong { color: var(--wp--preset--color--ink); }

/* ---------- Sections ---------- */
.fj-section { padding-block: var(--wp--preset--spacing--40); }
.fj-section > h2:first-child { margin-top: 0; }
.fj-section__intro { color: var(--wp--preset--color--muted); max-width: 40rem; }

/* Two-way decision (eSIM or pocket WiFi) */
.fj-split { display: grid; gap: 1rem; }
@media (min-width: 760px) { .fj-split { grid-template-columns: 1fr 1fr; gap: 2rem; } }
.fj-split > div { border-top: 4px solid var(--wp--preset--color--ink); padding-top: 0.75rem; }
.fj-split h3 { margin-top: 0; }
.fj-split ul { padding-left: 1.1rem; margin: 0.5rem 0 0; }

/* Guide list */
.fj-guides { list-style: none; padding: 0; margin: 0; columns: 1; }
@media (min-width: 760px) { .fj-guides { columns: 2; column-gap: 2rem; } }
.fj-guides li { break-inside: avoid; padding: 0.6rem 0; border-bottom: 1px solid var(--wp--preset--color--rule); }
.fj-guides a { font-weight: 700; }
.fj-guides span { display: block; font-size: 0.92rem; color: var(--wp--preset--color--muted); }

/* Author strip */
.fj-author { display: grid; gap: 1rem; grid-template-columns: 4.5rem 1fr; align-items: start; border-top: 1px solid var(--wp--preset--color--rule); padding-top: 1.5rem; }
.fj-author__photo {
	width: 4.5rem; height: 4.5rem; border-radius: 50%; background: var(--wp--preset--color--rule);
	display: grid; place-items: center; font-size: 0.7rem; color: var(--wp--preset--color--ink); text-align: center;
}
.fj-author p { margin: 0 0 0.5rem; }

/* Pros / cons */
.fj-proscons { display: grid; gap: 1rem; }
@media (min-width: 640px) { .fj-proscons { grid-template-columns: 1fr 1fr; } }
.fj-proscons > div { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--rule); border-radius: var(--wp--custom--radius--row); padding: 1rem 1.1rem; }
.fj-proscons h3 { margin: 0 0 0.5rem; font-size: 1.05rem; }
.fj-proscons ul { margin: 0; padding-left: 1.1rem; }

.fj-todo { background: var(--wp--preset--color--tint-amber); padding: 0.1rem 0.35rem; border-radius: 3px; font-weight: 600; }

/* ---------- Footer ---------- */
.fj-footer {
	background: var(--wp--preset--color--ink); color: #E6E9EE;
	padding-block: var(--wp--preset--spacing--50);
	border-top: var(--wp--custom--line--band) solid var(--wp--preset--color--line-red);
}
.fj-footer a { color: #fff; }
.fj-footer__brand { max-width: 34rem; }
.fj-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
@media (min-width: 782px) { .fj-footer__links { justify-items: end; } }

/* ---------- Details (FAQ) ---------- */
.wp-block-details summary { font-weight: 700; cursor: pointer; }
.wp-block-details summary:focus-visible { outline: 2px solid var(--wp--preset--color--guide-blue); outline-offset: 2px; }
.fj-disclosure--top { margin-top: 1rem !important; }
h1 { text-wrap: balance; }

/* ---------- Graphics ---------- */
.fj-airline { margin: 2.5rem 0 0; max-width: 26rem; }
.fj-airline svg { display: block; width: 100%; height: auto; overflow: visible; }
.fj-airline__code { font: 800 10.5px var(--wp--preset--font-family--body); fill: var(--wp--preset--color--ink); }
.fj-airline__name { font: 600 12px var(--wp--preset--font-family--body); fill: var(--wp--preset--color--muted); }
.fj-airline__stop:hover .fj-airline__name, .fj-airline__stop:focus .fj-airline__name { fill: var(--wp--preset--color--guide-blue); text-decoration: underline; }
.fj-airline__stop:focus-visible rect { stroke: var(--wp--preset--color--guide-blue); }
.fj-airline__stop:focus { outline: none; }
.fj-airline figcaption { margin-top: 0.75rem; font-size: 0.95rem; color: var(--wp--preset--color--muted); }
@media (max-width: 959px) { .fj-airline { display: none; } }
.fj-icon { display: block; width: 3rem; height: 3rem; color: var(--wp--preset--color--ink); margin-bottom: 0.5rem; }
.fj-airline svg a { text-decoration: none; }

.fj-avatar { display: block; width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; background: var(--wp--preset--color--rule); }

/* Simple content tables (from content/src markdown) */
.fj-simple-wrap { overflow-x: auto; margin-block: 1.25rem; border: 1px solid var(--wp--preset--color--rule); border-radius: var(--wp--custom--radius--row); background: var(--wp--preset--color--surface); }
.fj-simple { width: 100%; border-collapse: collapse; font-size: 0.95rem; font-variant-numeric: tabular-nums; }
.fj-simple th, .fj-simple td { text-align: left; vertical-align: top; padding: 0.65rem 0.8rem; border-bottom: 1px solid var(--wp--preset--color--rule); }
.fj-simple thead th { background: var(--wp--preset--color--paper); font-size: 0.85rem; color: var(--wp--preset--color--muted); }
.fj-simple tbody tr:last-child > * { border-bottom: 0; }
.fj-simple tbody th { font-weight: 700; }
@media (max-width: 600px) { .fj-simple { min-width: 34rem; } }
.fj-main h2[id], .fj-main h3[id] { scroll-margin-top: 1rem; }

.fj-simple-wrap:focus-visible { outline: 2px solid var(--wp--preset--color--guide-blue); outline-offset: 2px; }
