@charset "utf-8";
/* ID削除・該当店舗なし：公開サイトの404ページに合わせる */
body:has(> main > h1 + a.btn) {
line-height: 1.5;
color: #1a202c;
}
main:has(> h1 + a.btn) {
width: 100%;
max-width: none;
margin: 0;
padding: 0;
}
main:has(> h1 + a.btn) > h1 {
max-width: none;
margin: 0;
padding: 100px 0;
font-size: 2em;
line-height: 1.5;
color: #1a202c;
text-align: center;
}
main:has(> h1 + a.btn) > a.btn {
max-width: 372px;
display: block;
margin: 0 auto 200px;
background-color: #000;
color: #fff;
border-radius: 15px;
padding: 10px 0 12px;
text-align: center;
font-size: 18px;
line-height: 1.5;
}
@media screen and (max-width: 767px) {
main:has(> h1 + a.btn) > h1 {
font-size: 20px;
}
main:has(> h1 + a.btn) > a.btn {
max-width: 90.67%;
}
}
/* ==========================================================
   eSIM square / location_details  (CSS only refinement)
   Brand: #008FE6 / #004972 / text #1A202C / bg #F9F9F9
   ========================================================== */
:root {
	--c-main: #008FE6;
	--c-main-soft: #E6F4FD;
	--c-main-line: #B9DFF7;
	--c-navy: #004972;
	--c-gray: #CCC;
	--c-black: #000;
--c-white: #fff;
	--c-text: #1A202C;
--c-sub: #000;
--toggle-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M8 3v10' fill='none' stroke='%23008FE6' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
--toggle-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	--c-bg: #F9F9F9;
	--c-line: #DDE6EE;
	--c-price: #C2410C;
	--c-price-soft: #FFF1E8;
	--r-card: 14px;
	--ease: cubic-bezier(.22, .8, .24, 1);
--w-content: 768px;
	--chev-blue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23008FE6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--chev-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--chev-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23004972' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: 76px;
}
body {
	color: var(--c-black);
	background: var(--c-bg);
	-webkit-font-smoothing: antialiased;
	line-height: 1.7;
}
a:focus-visible,
.open_title:focus-visible,
.open_list:focus-visible {
	outline: 3px solid var(--c-main);
	outline-offset: 3px;
	border-radius: 8px;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@keyframes esq-reveal {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}

/* PC/SP 表示非表示制御 */
.sp_display { display: none !important; }
.pc_display { display: block !important; }

h1 {
	max-width: var(--w-content);
	margin: 0 auto 50px;
padding: 70px 20px 0;
	background: transparent;
	box-sizing: border-box;
	line-height: 1.45;
	font-size: 36px;
	color: var(--c-text);
text-align: left;
	border: 0;
}
h2 {
	font-size: clamp(22px, 2.4vw, 30px);
	text-align: center;
	padding: 1em 0;
}
h3 {
	font-size: clamp(18px, 1.8vw, 22px);
	margin-bottom: 10px;
}
.breadcrumb {
box-sizing: border-box;
max-width: 100%;
overflow-x: auto;
overflow-y: hidden;
background-color: #fff;
color: #1A202C;
line-height: 1.5;
padding: .5rem;
}
.breadcrumb ul {
	display: flex;
flex-wrap: nowrap;
width: auto;
min-width: 0;
box-sizing: border-box;
gap: 0;
margin: 0 auto;
padding: .25rem;
font-size: 18px;
align-items: center;
white-space: nowrap;
}
.breadcrumb li { flex: 0 0 auto; overflow-wrap: normal; white-space: nowrap; }
.breadcrumb li::before { margin-inline: .5rem; font-size: 16px; }
@media screen and (max-width: 1024px) {
.breadcrumb { overflow-x: scroll; }
.breadcrumb ul { font-size: 16px; }
}
@media screen and (max-width: 768px) {
.breadcrumb { padding: .25rem; }
.breadcrumb ul { padding-bottom: 5px; }
}
@media screen and (max-width: 767px) {
.breadcrumb ul, .breadcrumb li::before { font-size: 12px; }
}
main { padding: 0 0 48px; width: 100%; }

/* ---------- content-box ---------- */
.content-box {
	width: 100%;
	margin-bottom: 0;
	padding: 48px 20px;
	box-sizing: border-box;
}
.content-box:nth-of-type(odd) { background-color: #ffffff; }
.content-box:nth-of-type(even) { background-color: var(--c-bg); }
.content-box > * {
	max-width: var(--w-content);
	margin-left: auto;
	margin-right: auto;
}
.content-box h2 {
	font-size: 28px;
	line-height: 1.45;
	color: var(--c-black);
	text-align: center;
	padding: 0 0 .9em;
	position: relative;
}
.content-box h2::after {
	display: none;
}
.content-box h2 span {
	font-size: 14px;
	line-height: 1.6;
	color: var(--c-sub);
	display: block;
	margin-top: .6em;
}
.content-box h3 {
	font-size: clamp(18px, 1.8vw, 22px);
	color: #000;
	margin-bottom: 10px;
}

/* ---------- main-tab ---------- */
#main-tab {
width: calc(100% - 48px);
	max-width: var(--w-content);
	margin: 0 auto;
padding: 18px 0 0;
	box-sizing: border-box;
position: static;
}
#main-tab ul {
	font-size: 15px;
	list-style-type: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
padding: 24px 0 0;
}
#main-tab ul li { width: auto; min-width: 0; }
#main-tab ul li a,
#main-tab ul li:nth-child(odd) a,
#main-tab ul li:nth-child(even) a {
	margin: 0;
	border: 1px solid var(--c-navy);
border-radius: 7px;
	background-color: #fff;
color: #000;
	text-align: center;
	padding: 0 18px;
height: 40px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	position: relative;
	transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s;
}
#main-tab ul li.arrow_right {
	color: #FFF;
position: relative;
}
#main-tab ul li.arrow_right::before {
content: "＼空港カウンターで設定サポートいたします／";
position: absolute;
bottom: calc(100% + 6px);
left: 0;
width: 100%;
color: var(--c-main);
font-size: 10px;
font-weight: 700;
line-height: 1.4;
text-align: center;
pointer-events: none;
}
html:lang(en) #main-tab ul li.arrow_right::before {
/* 全角の＼／をUnicodeエスケープで指定 */
content: "\FF3C Get Setup Support at Our Airport Counter\FF0F";
}
#main-tab ul li.arrow_right a {
	background-color: var(--c-main);
	border-color: var(--c-main);
color: #fff;
}
#main-tab ul li a::after {
	content: "";
	display: block;
	width: 14px;
	height: 14px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	border-radius: 0;
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
}
#main-tab ul li.arrow_down a::after {
	background-image: var(--chev-navy);
	background-color: transparent;
filter: brightness(0);
}
#main-tab ul li.arrow_right a { padding-right: 18px; }
#main-tab ul li.arrow_right a::after { display: none; }
#main-tab ul li a:hover {
	opacity: 1;
	text-decoration: none;
}
#main-tab ul li.arrow_down a:hover { background-color: var(--c-gray); color: #000; border-color: var(--c-gray); }
#main-tab ul li.arrow_down a:hover::after { filter: brightness(0); }
#main-tab ul li.arrow_right a:hover { background-color: var(--c-navy); border-color: var(--c-navy); color: #fff; }

/* ---------- location (hero card) ---------- */
.location { margin-bottom: 0; }
.location > * {
	max-width: var(--w-content);
	margin-left: auto;
	margin-right: auto;
}
.location.content-box { padding-top: 28px; }
.location p {
	font-size: 15px;
	margin-bottom: .9em;
}
.location .airport_details {
	display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin-bottom: 28px;
	background: #fff;
	border: 1px solid #E2E8F0;
	border-radius: 18px;
	overflow: hidden;
}
.location .airport_details .airport_img { width: auto; min-height: 220px; background: var(--c-main-soft); }
.location .airport_details .airport_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.location .airport_details .airport_data {
	width: auto;
	padding: 28px 32px;
	align-self: center;
}
.location .title {
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 700;
color: #000;
	margin-bottom: 1.1em;
	line-height: 1.5;
	padding-bottom: .8em;
	border-bottom: 3px solid var(--c-main);
}
.location .sb_title {
	display: inline-block;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .06em;
	color: var(--c-navy);
	background: var(--c-main-soft);
	border-radius: 999px;
	padding: .15em .9em;
	margin: 0 0 .4em;
}
.location > .sb_title {
	display: block;
	width: 100%;
	max-width: var(--w-content);
	box-sizing: border-box;
	margin: 0 auto .8em;
background: transparent;
color: #000;
font-size: 15px;
}
@media screen and (max-width: 767px) {
.location > .sb_title { font-size: 13px; }
}
.location .airport_location-map p { padding: 0 .5em; }
.location .airport_location-map {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 16px;
	max-width: var(--w-content);
	align-items: start;
}
.location .airport_location-map .map-wrap {
	width: 100%;
	margin: 0;
	border-radius: var(--r-card);
	overflow: hidden;
	border: 1px solid #E2E8F0;
	background: var(--c-main-soft);
}
.location .airport_location-map .map-wrap iframe { display: block; width: 100%; }
.location .airport_location-map .airport_map {
	width: 100%;
	margin: 0;
	background: #fff;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	padding: 10px;
	box-sizing: border-box;
}
.location .airport_location-map .airport_map img { width: 100%; height: auto; display: block; border-radius: 8px; }
@media screen and (min-width: 768px) {
	.location .airport_location-map .map-wrap,
	.location .airport_location-map .airport_map {
		height: 360px;
		box-sizing: border-box;
	}
	.location .airport_location-map .map-wrap iframe {
		height: 358px;
	}
	.location .airport_location-map .airport_map img {
		height: 100%;
		object-fit: contain;
	}
}

/* ---------- services ---------- */
#services p {
	font-size: 15px;
	color: var(--c-text);
	line-height: 1.9;
}
#services .open_content {
	background: #fff;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	padding: 18px 22px;
	margin-top: 4px;
}
#services .open_content[style*="block"] { animation: esq-reveal .35s var(--ease); }
/* 店舗のご案内のみ常時表示（他のアコーディオンは変更しない） */
#services > .open_title.circle_icon {
cursor: default;
pointer-events: none;
}
#services > .open_title.circle_icon::after {
content: none;
display: none;
}
#services > .open_title.circle_icon h2,
#services > .open_title.circle_icon:hover h2 {
color: #000;
}
#services > .open_content {
/* 既存の開閉処理が設定するインライン display より優先 */
display: block !important;
}

/* ---------- products ---------- */
#products #products_tab { margin-bottom: 1.2em; }
#products #products_tab ul {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	padding: 0;
	list-style: none;
}
#products #products_tab ul li { width: auto; }
#products #products_tab ul li a {
	border: 1.5px solid var(--c-navy);
	background-color: #fff;
color: #000;
	font-weight: 700;
	font-size: 14px;
	border-radius: 999px;
	text-align: center;
	display: block;
	margin: 0;
	padding: .55em 1.3em;
	transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s;
}
#products #products_tab ul li a:hover {
	border: 1.5px solid var(--c-gray);
	background: var(--c-gray);
	border-color: var(--c-gray);
color: #000;
}
#products.content-box .heading {
	display: flex;
flex-wrap: wrap;
	align-items: center;
text-align: left;
	padding: .6em 0 .8em;
gap: 4px;
}
#products.content-box .heading h3 {
	margin: 0;
color: #000;
border-left: 5px solid var(--c-main);
padding-left: .7em;
}
#products.content-box .heading:has(+ #products_tab) h3 {
border-left: 0;
padding-left: 0;
text-align: left;
}
#products.content-box .heading h3::before { content: none; display: none; }
#products.content-box .heading::before { display: none; }
#products.content-box .heading::after {
	content: "";
display: block;
flex: 0 0 100%;
width: 100%;
box-sizing: border-box;
opacity: 0.6;
border: var(--border, 1px solid #E2E8F0);
}
#products.content-box .heading:has(+ #products_tab)::after {
border: 0;
border-bottom: 3px double #E2E8F0;
}
#products > section { margin-bottom: 12px; }

/* products_list (grid cards) */
.products_list ul {
	display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 20px;
	padding: 0;
	list-style: none;
}
.products_list.open_item ul { margin-bottom: 0; }
.products_list ul li,
.products_list ul li:nth-child(odd),
.products_list ul li:nth-child(even) {
	flex: none;
width: 100%;
min-width: 0;
max-width: 100%;
	aspect-ratio: auto;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	background-color: #fff;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	margin: 0;
	overflow: hidden;
	line-height: 1.4;
}
.products_list.open_item ul li:nth-child(n+3) { display: none; }
.products_list.open_item.is-open ul li:nth-child(n+3) {
	display: flex;
/* 既に表示中の3件目を再アニメーションさせない */
animation: none;
}
#jp_SIM .products_list.open_item ul li:nth-child(3),
#jp_eSIM .products_list.open_item ul li:nth-child(3),
#out_SIM .products_list.open_item ul li:nth-child(3),
#out_eSIM .products_list.open_item ul li:nth-child(3) {
display: flex;
}

/* products_title: navy face */
.products_title {
position: relative;
	height: auto;
	flex: 1 1 auto;
	background: var(--c-navy);
background-image: none;
	color: #fff;
	border-radius: 0;
	padding: 16px 18px 14px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.products_title .products_type { margin: 0; order: -1; align-self: flex-end; text-align: right; }
.products_title .products_type span {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
background-color: var(--c-white);
color: var(--c-main);
	border-radius: 999px;
	padding: .2em .85em;
}
.products_title .products_countrie {
	width: 100%;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
}
.products_title .products_countrie span {
	font-size: 13px;
	font-weight: 700;
	display: block;
	margin-bottom: 4px;
	line-height: 1.4;
	color: #9ED8FA;
	letter-spacing: .03em;
}
/* Country flags share a header row with the right-aligned SIM/eSIM badge. */
.products_title .products_countrie > img {
display: inline-block;
vertical-align: top;
width: 32px;
height: 24px;
max-width: 100%;
object-fit: contain;
background-color: #fff;
filter: none;
margin: 0 4px 8px 0;
}
.products_title .products_countrie > img + br { display: none; }
.products_title:has(.products_countrie > img) .products_type {
position: absolute;
top: 16px;
right: 18px;
height: 24px;
display: flex;
align-items: center;
}

/* products_details */
.products_details { padding: 10px 18px 14px; text-align: right; }
.products_details:empty { display: none; }
.products_details .products_countrie {
	font-weight: 700;
	font-size: 16px;
	color: var(--c-navy);
}
.products_details .products_sub { margin: .2em; }
.products_details .products_prices {
	font-size: 26px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--c-price);
	font-variant-numeric: tabular-nums;
}

/* other */
#other .products_list ul li { aspect-ratio: auto; }
#other .products_title {
	background: var(--c-main-soft);
	background-image: none;
	align-items: center;
	justify-content: center;
	padding: 14px;
}
#other .products_title img { margin: 0 auto; max-height: 130px; width: auto; max-width: 100%; object-fit: contain; }
#other .products_details { text-align: left; }
.other_products { font-size: 14px; font-weight: 700; line-height: 1.5; margin-bottom: .3em; color: var(--c-text); }
#other .products_details .products_prices { font-size: 22px; }

/* bnr_wifibox / bnr_ess */
.bnr_wifibox,
.bnr_ess { width: 100%; margin: 28px auto; display: flex; justify-content: center; }
.bnr_ess a { display: block; width: fit-content; max-width: 100%; }
.bnr_ess img { display: block; max-width: 100%; height: auto; }
.bnr_wifibox a { display: block; width: fit-content; max-width: 100%; border-radius: 0; overflow: hidden; }
.bnr_wifibox img { width: auto; max-width: 100%; height: auto; display: block; border-radius: 0; }

/* ---------- b_box ---------- */
.b_box {
	border: 0;
	border-radius: var(--r-card);
	width: 100%;
	box-sizing: border-box;
position: relative;
isolation: isolate;
	background-color: var(--c-navy);
/* background-image: url("/images/sales-location/airport_LP_top_pcmv.jpg"); */
background-position: center;
background-repeat: no-repeat;
background-size: 100% auto;
	color: #fff;
	padding: 28px 32px;
margin-top: 20px;
	margin-bottom: 20px;
}
.b_box::before {
/* No photo overlay while the background image is disabled. */
content: none;
}
.b_box > * {
position: relative;
z-index: 1;
}
.b_box:has(.link_btm a:hover)::before { opacity: 0; }
@media screen and (min-width: 768px) {
.b_box > h3,
.b_box > p {
width: 100%;
margin-left: auto;
margin-right: auto;
text-align: center;
}
.b_box > .link_btm {
width: 100%;
margin-left: auto;
margin-right: auto;
text-align: center;
}
}
.b_box h3 {
	font-size: clamp(20px, 2vw, 24px);
	color: #fff;
	text-align: center;
	margin-bottom: .6em;
}
.b_box p {
	font-size: 15px;
color: #fff;
	margin-bottom: 12px;
	text-align: center;
}

/* ---------- link_btm (CTA) ---------- */
.link_btm {
	text-align: center;
	margin: 1em auto 0;
	padding: .5em 0;
	position: relative;
	width: fit-content;
}
.link_btm a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	max-width: 100%;
height: 40px;
	box-sizing: border-box;
	background-color: var(--c-main);
	font-weight: 700;
	color: #fff;
border-radius: 7px;
	font-size: 16px;
	line-height: 1.2;
	transition: background-color .25s var(--ease), color .25s;
	position: relative;
	text-decoration: none;
	padding:0px 20px;
}
.link_btm a:hover {
	background-color: var(--c-navy);
}
.b_box .link_btm a { background: #fff; color: #000; }
.b_box .link_btm a::after { background-color: var(--c-main-soft); }
.b_box .link_btm a:hover { background: var(--c-gray); color: #000; }
.link_btm.details_link { text-align: right; margin-right: 5px; }
.location .link_btm { text-align: center; }
.location .link_btm a {
	padding-right: 18px;
	padding-left: 18px;
	text-align: center;
	justify-content: center;
}

/* ---------- howto_use ---------- */
#howto_use .tab-btn {
	width: 100%;
	max-width: var(--w-content);
	margin: 0 auto;
	display: flex;
	justify-content: flex-start;
	gap: 0;
	padding: 0;
	background: transparent;
	border-radius: 0;
border-bottom: 1px solid var(--c-gray);
	text-align: center;
	list-style: none;
}
#howto_use .tab-btn li {
	width: auto;
	flex: 1 1 0;
	margin: 0;
	min-width: 0;
	font-size: 18px;
	font-weight: 700;
	position: relative;
}
#howto_use .tab-btn li a {
	box-sizing: border-box;
background: var(--c-white);
border-radius: 6px 6px 0 0;
border-bottom: 2px solid var(--c-gray);
display: flex;
align-items: center;
justify-content: center;
	text-decoration: none;
height: 42px;
padding: 8px 16px;
	margin-bottom: -1px;
	color: #1A202C;
	font-size: 16px;
line-height: 24px;
	transition: background-color .25s var(--ease), color .25s var(--ease);
}
#howto_use .tab-btn li a:hover {
color: #000;
background: var(--c-gray);
}
#howto_use .tab-btn li a.selected {
	color: #fff;
background: var(--c-main);
border-radius: 6px 6px 0 0;
border-bottom-color: var(--c-gray);
}
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
#howto_use .tab-btn li a.selected:hover {
color: #fff;
background: var(--c-navy);
}
}
#howto_use .tab-box { display: none; }
#howto_use .tab-box.selected { display: block; animation: esq-reveal .4s var(--ease); }
#howto_use .tab-box {
	background-color: #fff;
	padding: 24px;
	border-radius: var(--r-card);
	border: 1px solid #E2E8F0;
	margin: 20px auto;
}
#howto_use .tab-box ul {
	font-size: 15px;
	list-style-type: none;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 20px;
	padding: 0;
}
#howto_use #howto_esim > ul {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
#howto_use .tab-box ul li,
#howto_use .tab-box ul li:nth-child(odd),
#howto_use .tab-box ul li:nth-child(even) {
	width: auto;
	margin: 0;
	text-align: center;
	font-weight: 700;
	line-height: 1.55;
}
#howto_use .tab-box ul li img { margin: 0 auto 10px; width: 100%; height: auto; border-radius: 10px; }

/* ---------- support ---------- */
#support p { font-size: 15px; text-align: center; color: var(--c-sub); }
#support ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin: 24px auto 0;
	padding: 0;
	list-style: none;
}
#support ul li,
#support ul li:last-child {
	width: auto;
	margin: 0;
	display: block;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	color: var(--c-black);
	background: #fff;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	padding: 14px 10px 18px;
}
#support ul li img { margin: 0 auto .6em; width: 100%; height: auto; border-radius: 10px; }

/* ---------- esim_notes ---------- */
#esim_notes section {
	background: #fff;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	padding: 20px 24px 8px;
	margin-bottom: 14px;
}
#esim_notes section h3 {
	font-size: 17px;
	padding-left: .7em;
border-left: 5px solid var(--c-main);
	margin-bottom: .8em;
}
#esim_notes ol { margin: 0 0 1.2em 1.4em; padding: 0; }
#esim_notes ol li {
	list-style-type: disc;
	font-size: 14px;
	line-height: 1.85;
	margin-bottom: .5em;
	padding-left: .2em;
}
#esim_notes ol li::marker { font-weight: 400; }
#esim_notes .open_content[style*="block"] { animation: esq-reveal .35s var(--ease); }

/* ---------- faq ---------- */
#faq > ul { border-bottom: 2px solid #f5f5f5; }
#faq ul {
	list-style-type: none;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	padding: 0;
}
#faq ul li {
	margin-bottom: 0;
	background-color: #ffffff;
	padding: 0.4em 1em;
	width: 100%;
	box-sizing: border-box;
	font-size: 15px;
}
#faq ul li.faq_Q {
	margin-top: 0;
	border: 0;
	border-top: 2px solid #f5f5f5;
	font-weight: 700;
	display: flex;
	position: relative;
	align-items: center;
	padding: 20px 50px;
	cursor: pointer;
	color: var(--c-text);
	transition: color .25s;
}
#faq ul li.faq_Q:hover { color: var(--c-navy); }
#faq ul li.faq_Q.is-open { background: #fff; }
#faq ul li.faq_Q span { margin-right: 8px; }
#faq ul li.faq_Q span.icon_Q {
color: var(--c-main);
	background: transparent;
	display: inline;
	font-size: 18px;
	margin-right: 0;
}
#faq ul li.faq_Q::after {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23000000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
	position: absolute;
	right: 30px;
	top: 50%;
	margin-top: -8px;
	transform: none;
	transition: transform .3s var(--ease);
}
#faq ul li.faq_Q.is-open::after {
	opacity: 1;
	transform: rotate(180deg);
}
#faq ul li.open_content {
	display: none;
	position: relative;
	border: 0;
	border-top: 2px solid #f5f5f5;
	border-radius: 0;
	padding: 20px 50px;
	color: var(--c-text);
	line-height: 1.8;
}
#faq ul li.faq_A::before {
	content: "A";
	position: absolute;
	top: 20px;
	left: 8px;
	color: var(--c-navy);
	font-size: 18px;
	font-weight: 700;
}
#faq ul li.open_content[style*="block"] { animation: esq-reveal .35s var(--ease); }
#faq ul li.open_content a { color: var(--c-main); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#faq ul li.open_content a:hover { color: var(--c-navy); }

/* ---------- airport_list ---------- */
#other_counters .counter_data {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto;
gap: 16px;
align-items: center;
padding: 20px;
}
#other_counters .counter_data h3 {
min-width: 0;
margin: 0;
}
#other_counters .counter_data .time {
margin: 0;
flex: 0 0 auto;
text-align: right;
font-weight: 700;
font-size: 18px;
color: var(--c-navy);
background: var(--c-main-soft);
border-radius: 10px;
padding: .3em .8em;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
#other_counters .counter_data .link_btm {
margin: 0;
padding: 0;
}
#other_counters .counter_box {
	max-width: var(--w-content);
	margin: 0 auto 18px;
	border: 1px solid #E2E8F0;
}
#other_counters .counter_box > .open_title {
	position: relative;
	display: block;
	box-sizing: border-box;
	padding: 20px 50px 20px 22px;
	border-top: 2px solid #f5f5f5;
	color: var(--c-text);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
	cursor: pointer;
	transition: color .25s;
}
#other_counters .counter_box > .open_title:hover { color: var(--c-navy); }
#other_counters .counter_box > .open_title::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 4px;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	border-radius: 50%;
background: var(--c-main-soft) var(--toggle-plus) no-repeat center / 16px;
	transition: transform .35s var(--ease), background-color .25s;
}
#other_counters .counter_box > .open_title:hover::after { background-color: var(--c-main-line); }
#other_counters .counter_box > .open_title.is-open::after {
background-image: var(--toggle-minus);
	background-color: var(--c-navy);
transform: none;
}
#other_counters .counter_box > .open_content {
	display: none;
	position: relative;
	box-sizing: border-box;
	padding: 20px 50px;
	border-top: 2px solid #f5f5f5;
	color: var(--c-text);
	line-height: 1.8;
}
#other_counters .counter_box > .open_content[style*="block"] {
	animation: esq-reveal .35s var(--ease);
}
@media screen and (min-width: 768px) {
/* 英語のその他商品：開いた時もsubgridを維持し、写真段の伸縮を防ぐ */
html:lang(en) #other .products_list.open_item.is-open > ul > li {
display: grid;
}
.products_list ul li,
.products_list ul li:nth-child(odd),
.products_list ul li:nth-child(even) {
display: grid;
grid-template-rows: subgrid;
grid-row: span 2;
row-gap: 0;
}
.products_list.open_item ul li:nth-child(n+3),
#jp_SIM .products_list.open_item ul li:nth-child(3),
#jp_eSIM .products_list.open_item ul li:nth-child(3),
#out_SIM .products_list.open_item ul li:nth-child(3),
#out_eSIM .products_list.open_item ul li:nth-child(3) {
display: grid;
}
.products_list.open_item:not(.is-open) ul li:nth-child(n+3) {
display: none;
}
#jp_SIM .products_list.open_item:not(.is-open) ul li:nth-child(3),
#jp_eSIM .products_list.open_item:not(.is-open) ul li:nth-child(3),
#out_SIM .products_list.open_item:not(.is-open) ul li:nth-child(3),
#out_eSIM .products_list.open_item:not(.is-open) ul li:nth-child(3),
#other .products_list.open_item:not(.is-open) ul li:nth-child(3) {
display: grid;
}
.products_details {
display: flex;
flex-direction: column;
}
.products_details .products_prices { margin-top: auto; }
#other_counters .counter_box > .open_content {
padding: 20px 22px;
}
#other_counters .open_content > ul {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: auto auto;
gap: 16px;
padding: 0;
margin: 0;
list-style: none;
}
#other_counters .open_content > ul > li {
width: auto;
min-width: 0;
margin: 0;
padding: 0;
float: none;
}
#other_counters .open_content > ul > li:first-child {
grid-column: 1;
grid-row: 1 / 3;
}
#other_counters .open_content > ul > li:nth-child(2) {
grid-column: 2;
grid-row: 1;
}
#other_counters .open_content > ul > li:nth-child(3) {
grid-column: 2;
grid-row: 2;
}
#other_counters .open_content > ul > li img {
display: block;
width: 100%;
height: auto;
}
#other_counters .open_content .link_btm { margin: 0 auto; }
#other_counters .open_content .link_btm a { max-width: 100%; }
}

/* ---------- airport_list ---------- */
#airport_list { display: block; }
#airport_list > section {
	background: #fff;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	padding: 16px 22px 6px;
	margin-bottom: 12px;
}
#airport_list > section h3 {
	font-size: 20px;
	color: var(--c-black);
	position: relative;
	display: flex;
	align-items: center;
	min-height: 36px;
	padding: 0;
	border-left: 0;
	margin-bottom: .6em;
}
#airport_list > section h3::after { display: none; }
#airport_list ul { margin: 0 0 .8em; padding: 0; list-style: none; }
#airport_list ul li { border-top: 1px solid var(--c-line); }
#airport_list ul li:first-child { border-top: 0; }
#airport_list ul li a {
	display: block;
	position: relative;
	color: var(--c-main);
	font-size: 14px;
	padding: .65em 1.8em .65em .2em;
	transition: color .2s, padding-left .25s var(--ease);
}
#airport_list ul li a::after {
	content: "";
	position: absolute;
	right: .3em;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--c-main);
	border-right: 2px solid var(--c-main);
	transform: translateY(-50%) rotate(45deg);
}
#airport_list ul li a:hover {
	color: var(--c-navy);
	text-decoration: none;
}

/* ---------- open_title / open_content ---------- */
.open_content { display: none; }
.open_title { cursor: pointer; -webkit-tap-highlight-color: transparent; }
.open_title.circle_icon {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex-direction: column;
}
.open_title.circle_icon h2 { padding-bottom: .5em; margin-bottom: .2em; color: var(--c-main); }
.open_title.circle_icon:hover h2 { color: var(--c-navy); }
.open_title.circle_icon::after {
	content: "";
	width: 36px;
	height: 36px;
background: var(--c-main-soft) var(--toggle-plus) no-repeat center / 20px;
	border-radius: 50%;
	display: block;
	margin: 0 auto 1em auto;
	transition: transform .35s var(--ease), background-color .25s;
}
.open_title.circle_icon:hover::after { background-color: var(--c-main-line); }
.open_title.circle_icon.is-open::after {
	background-color: var(--c-navy);
background-image: var(--toggle-minus);
	opacity: 1;
transform: none;
}
/* open_list */
.open_list {
	position: relative;
	cursor: pointer;
width: fit-content;
max-width: 100%;
height: 40px;
	box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
padding: 0 44px 0 16px;
border: 1px solid var(--c-navy);
border-radius: 7px;
color: #000;
	font-weight: 700;
font-size: 16px;
line-height: 19.2px;
	background-color: #fff;
	margin: 18px auto 20px auto;
	text-align: center;
	user-select: none;
	transition: background-color .25s var(--ease), color .25s var(--ease);
}
.open_list:hover { background: var(--c-gray); color: #000; border: 1px solid var(--c-gray); }
.open_list::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 16px;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	transform: none;
background: var(--toggle-plus) no-repeat center / contain;
filter: brightness(0);
}
.open_list:hover::after { background-image: var(--toggle-plus); }
.open_list.is-open::after {
background-image: var(--toggle-minus);
transform: none;
}
.open_list.is-open:hover::after { background-image: var(--toggle-minus); }

/* ---------- Tablet ---------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
:root { --w-content: 720px; }
.b_box { background-size: auto 100%; }
	.location .airport_details .airport_data { padding: 22px; }
}

/* ---------- SP ---------- */
@media screen and (max-width: 767px) {
	.sp_display { display: block !important; }
	.pc_display { display: none !important; }
:root { --w-content: 327px; }
h1 { margin-bottom: 24px; padding: 16px 16px 0; font-size: 24px; text-align: left; }
	main { padding-bottom: 88px; }
.content-box { padding: 36px 24px; }
.content-box > * { max-width: var(--w-content); }
.content-box h2 { font-size: 20px; }
	.content-box h2 span { font-size: 12.5px; }
	.content-box h3 { font-size: 18px; margin-bottom: 8px; }
#main-tab { max-width: var(--w-content); margin-bottom: 0; padding: 10px 0 0; }
	#main-tab ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); font-size: 13px; gap: 8px; }
#main-tab ul { padding-top: 38px; }
#main-tab ul li.arrow_right::before {
content: "＼空港カウンターでサポート／";
}
html:lang(en) #main-tab ul li.arrow_right::before {
content: "\FF3C Setup Support Available\FF0F";
}
#main-tab ul li a,
	#main-tab ul li:nth-child(odd) a,
	#main-tab ul li:nth-child(even) a {
		margin: 0;
		width: 100%;
		padding: 0 18px;
		font-size: 13px;
		text-align: left;
	}
#main-tab ul li.arrow_down a {
padding: 0 18px 0 5px;
font-size: 12px;
}
#main-tab ul li.arrow_right a { font-size: 12px; }
#main-tab ul li a::after { right: 10px; }
html:lang(en) #main-tab ul li.arrow_down a[href="#products"]::after {
right: 3px;
}
	.location .airport_details { display: block; margin-bottom: 20px; }
	.location .airport_details .airport_img { width: 100%; margin: 0; min-height: 0; }
	.location .airport_details .airport_img img { height: auto; }
	.location .airport_details .airport_data { width: 100%; padding: 18px 18px 8px; box-sizing: border-box; }
	.location .title { font-size: 17px; margin-bottom: .9em; }
.location > .sb_title { max-width: var(--w-content); padding: 0; }
	.location .airport_location-map { grid-template-columns: 1fr; }
	.location .airport_location-map .map-wrap,
	.location .airport_location-map .airport_map { width: 100%; }
	.location .airport_location-map .map-wrap iframe { height: 280px; }
	#services p { font-size: 14px; }
	#services .open_content { padding: 14px 16px; }
	#products #products_tab ul { justify-content: flex-start; }
	#products #products_tab ul li { width: auto; }
.products_list ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
#other .products_list ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.products_list ul li:nth-child(2n),
	.products_list ul li:nth-child(2n+1) { margin: 0; }
	.products_title { padding: 14px 16px 12px; }
.products_title:has(.products_countrie > img) .products_type { top: 14px; right: 16px; }
	#other .products_title img { max-height: 100px; }
.open_list { width: fit-content; font-size: 16px; }
.b_box { padding: 22px 18px; margin-top: 14px; margin-bottom: 14px; }
.b_box {
/* background-image: url("/images/sales-location/airport_LP_top_spmv.jpg"); */
background-size: 100% auto;
}
	.b_box h3 { font-size: 20px; }
	.b_box p { font-size: 14px; }
	.link_btm a { font-size: 15px; }
	.link_btm.details_link a { font-size: 14px; }
	#howto_use .tab-btn { max-width: 100%; }
	#howto_use .tab-btn li { margin: 0; min-width: 0; font-size: 16px; }
#howto_use .tab-btn li a { padding: 8px 16px; }
	#howto_use .tab-box { padding: 16px; }
	#howto_use .tab-box ul { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	#howto_use .tab-box ul li { font-size: 13px; }
	#support p { font-size: 14px; }
#support ul { grid-template-columns: repeat(2, 1fr); gap: 8px; }
#support ul li,
#support ul li:last-child { font-size: 12px; padding: 10px 6px 14px; }
	#esim_notes section { padding: 16px 16px 4px; }
	#esim_notes ol li { font-size: 13.5px; }
	#faq ul li { font-size: 14px; }
	#faq ul li.faq_Q::after { right: 12px; }
#faq ul li.faq_Q { padding: 15px 40px 15px 34px; }
#faq ul li.faq_Q span.icon_Q { font-size: 16px; }
#faq ul li.faq_Q::after { right: 20px; }
#faq ul li.faq_A { padding: 15px 12px 15px 34px; }
#faq ul li.faq_A::before { top: 15px; left: 5px; font-size: 16px; }
	#airport_list > section { padding: 14px 16px 4px; }
	#airport_list ul { margin: 0 0 .6em; }
#other_counters.content-box { width: 100%; max-width: none; }
#other_counters > .counter_box { width: 100%; max-width: var(--w-content); }
#other_counters .counter_data {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 12px;
}
#other_counters .counter_data h3 { flex: 0 0 100%; }
#other_counters .counter_data .time,
#other_counters .counter_data .link_btm {
flex: 0 0 auto;
width: auto;
}
	#other_counters .counter_box > .open_title { padding: 15px 42px 15px 16px; font-size: 16px; }
	#other_counters .counter_box > .open_title::after { right: 4px; }
	#other_counters .counter_box > .open_content { padding: 15px 16px 15px 36px; font-size: 14px; }
}
@media screen and (max-width: 360px) {
	.content-box { padding-left: 12px; padding-right: 12px; }
#support ul li,
#support ul li:last-child { font-size: 11px; }
}

/* ---------- H3 typography: PC / Tablet / SP ---------- */
h3,
.content-box h3,
.b_box h3,
#airport_list > section h3,
#products.content-box .heading h3,
#esim_notes section h3 {
	font-size: 24px;
}
@media screen and (max-width: 767px) {
	h3,
	.content-box h3,
	.b_box h3,
	#airport_list > section h3,
	#products.content-box .heading h3,
	#esim_notes section h3 {
		font-size: 18px;
	}
}

/* ---------- FAQ layout aligned with samplesim.php ---------- */
#faq ul li.faq_Q {
	position: relative;
	display: block;
	box-sizing: border-box;
	border: 0;
	border-top: 2px solid #f5f5f5;
	padding: 20px 50px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
}
#faq ul li.faq_Q > span.icon_Q { display: none; }
#faq ul li.faq_Q::after {
	content: none;
	display: none;
}
#faq ul li.faq_Q::before {
content: "Q.";
	position: absolute;
top: 1.3em;
left: 1.25em;
	color: #008fe6;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}
#faq ul li.faq_Q > span:last-child::before,
#faq ul li.faq_Q > span:last-child::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	width: 12px;
	height: 2px;
	background-color: #000;
	transform: rotate(45deg);
	transition: transform .3s;
}
#faq ul li.faq_Q > span:last-child::after {
	right: 22px;
	transform: rotate(-45deg);
}
#faq ul li.faq_Q.is-open > span:last-child::before { transform: rotate(-45deg); }
#faq ul li.faq_Q.is-open > span:last-child::after { transform: rotate(45deg); }
#faq ul li.faq_A {
	display: none;
	position: relative;
	box-sizing: border-box;
	border: 0;
	border-top: 2px solid #f5f5f5;
	border-radius: 0;
	padding: 20px 50px;
	font-size: 15px;
	line-height: 1.8;
}
#faq ul li.faq_A::before {
content: none;
	position: absolute;
	top: 1.2em;
	left: .5em;
	color: #004972;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}
@media screen and (max-width: 767px) {
	#faq ul li.faq_Q {
padding: 15px 42px 15px 50px;
		font-size: 16px;
	}
	#faq ul li.faq_Q::before { font-size: 16px; }
	#faq ul li.faq_Q > span:last-child::before { right: 22px; }
	#faq ul li.faq_Q > span:last-child::after { right: 14px; }
	#faq ul li.faq_A {
		padding: 15px 16px 15px 36px;
		font-size: 14px;
	}
	#faq ul li.faq_A::before { font-size: 16px; }
}