@charset "utf-8";
/* ==========================================================
   eSIM square / sales-location  (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-navy-deep: #00324F;
	--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;
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: 76px;
}
body {
	color: var(--c-black);
	-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; }
}

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

/* ---------- main-visual ---------- */
#main-visual { width: 100%; background: var(--c-navy); }
#main-visual .wrap {
	position: relative;
	max-width: 100%;
	overflow: hidden;
	max-height: 420px;
}
#main-visual .wrap::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(0, 50, 79, .78) 0%, rgba(0, 50, 79, .35) 55%, rgba(0, 50, 79, 0) 85%);
	pointer-events: none;
}
#main-visual img { width: 100%; height: auto; display: block; }
#main-visual h1 {
	font-size: 36px;
	color: #fff;
	position: absolute;
	top: 50%;
	left: max(5%, calc((100% - var(--w-content)) / 2));
	transform: translateY(-50%);
	z-index: 2;
	margin: 0;
	max-width: 22em;
	font-size: clamp(22px, 2.6vw, 34px);
	line-height: 1.4;
	letter-spacing: .02em;
}

.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;
	margin-bottom: .9em;
	position: relative;
}
.content-box h2::after {
	display: none;
}
.content-box h3 {
	font-size: clamp(18px, 1.8vw, 22px);
	color: var(--c-black);
	margin-bottom: 10px;
}
.content-box > p { color: var(--c-sub); text-align: center; }

/* ---------- 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;
background-color: #fff;
box-shadow: 0 0 0 100vmax #fff;
clip-path: inset(0 -100vmax);
}
#main-tab ul {
	font-size: 15px;
	list-style-type: none;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	padding: 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 24px 0 5px;
	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 a::after {
	content: "";
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 14px;
	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;
}
#main-tab ul li a:hover {
	opacity: 1;
	text-decoration: none;
	background-color: var(--c-gray);
	color: #000;
	border-color: var(--c-gray);
}

/* ---------- services ---------- */
#services { padding-top: 48px; }
#services ul {
	font-size: 15px;
	list-style-type: none;
	display: grid;
grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
#services ul li,
#services ul li:nth-child(odd),
#services ul li:nth-child(even) {
--service-pad-x: 12px;
--service-pad-top: 14px;
	width: auto;
	margin: 0;
	text-align: center;
	font-weight: 700;
	line-height: 1.55;
	background: #fff;
	border: 0;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
padding: var(--service-pad-top) var(--service-pad-x) 18px;
overflow: hidden;
}
#services ul li img {
display: block;
margin: calc(-1 * var(--service-pad-top)) calc(-1 * var(--service-pad-x)) 12px;
width: calc(100% + 2 * var(--service-pad-x));
max-width: none;
	height: auto;
border-radius: 0;
	background: var(--c-main-soft);
}

/* ---------- products_list (card rail) ---------- */
.products_list { margin-bottom: 32px; position: relative; }
.products_list ul {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	padding: 12px 4px 20px;
	margin: 0;
	list-style: none;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: var(--c-main) var(--c-main-soft);
}
.products_list ul::-webkit-scrollbar { height: 8px; }
.products_list ul::-webkit-scrollbar-track { background: var(--c-main-soft); border-radius: 8px; }
.products_list ul::-webkit-scrollbar-thumb { background: var(--c-main); border-radius: 8px; }
.products_list ul li {
	flex: 0 0 clamp(230px, 26%, 270px);
	aspect-ratio: auto;
	min-height: 0;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	background-color: #fff;
	border: 0;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	line-height: 1.4;
	overflow: hidden;
}

/* products_title: navy face of the card */
.products_title {
	position: relative;
	height: auto;
	flex: 0 0 auto;
	background: var(--c-navy);
	background-image: none;
	color: #fff;
	border-radius: 0;
	padding: 16px 18px 14px;
	min-height: 138px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.products_title .products_type { margin: 0; padding: 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;
	margin: 0;
	line-height: 1.5;
}
/* Keep destination flags sharp and level with the 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:has(.products_countrie > img) .products_type {
position: absolute;
top: 16px;
right: 18px;
height: 24px;
display: flex;
align-items: center;
}
.products_title .products_sub {
	margin: 0;
	font-size: 13px;
	color: #CFE9FA;
}

/* products_details */
.products_details {
	padding: 10px 18px 14px;
	text-align: right;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.products_details .products_countrie {
	font-weight: 700;
	font-size: 16px;
	color: var(--c-navy);
	margin-bottom: 0;
}
.products_details .products_sub {
	margin: .2em;
}
.products_details .products_prices {
	margin-top: auto;
	align-self: flex-end;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--c-price);
	background: transparent;
	padding: 0;
	font-variant-numeric: tabular-nums;
}

/* ---------- banners ---------- */
.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; }

/* ---------- b_box ---------- */
.b_box {
	border: 0;
	border: 1px solid #E2E8F0;
	border-radius: var(--r-card);
	width: 100%;
	box-sizing: border-box;
	background-color: #fff;
	padding: 28px 32px;
margin-top: 20px;
	margin-bottom: 20px;
}
#products > .b_box {
	border: 0;
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;
	text-align: center;
}
#products > .b_box::before {
/* No photo overlay while the background image is disabled. */
content: none;
}
#products > .b_box > * {
position: relative;
z-index: 1;
}
#products > .b_box:has(.link_btm a:hover)::before {
opacity: 0;
}
#products > .b_box h3 { color: #fff; }
#products > .b_box p { color: #fff; }
@media screen and (min-width: 768px) {
#products > .b_box > h3,
#products > .b_box > p {
width: 100%;
margin-left: auto;
margin-right: auto;
text-align: center;
}
#products > .b_box > .link_btm {
width: 100%;
margin-left: auto;
margin-right: auto;
text-align: center;
}
}
.b_box h3 {
	font-size: clamp(20px, 2vw, 24px);
	text-align: center;
	margin-bottom: .6em;
}
.b_box p {
	font-size: 15px;
	margin-bottom: 12px;
}

/* ---------- 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;
	padding: 0 20px;
	line-height: 1.2;
	transition: background-color .25s var(--ease), color .25s var(--ease);
	position: relative;
	text-decoration: none;
}
.link_btm a:hover {
	background-color: var(--c-navy);
}
#products > .b_box .link_btm a { background-color: #fff; color: #000; }
#products > .b_box .link_btm a:hover { background-color: var(--c-gray); color: #000; }
.link_btm.details_link {
	text-align: right;
	margin: 0 0 0 auto;
	padding: 0;
}
.link_btm.details_link a { font-size: 14px; padding-left: 16px; }

/* ---------- airport list ---------- */
.location {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
column-gap: 12px;
align-items: center;
	padding: 18px 0 20px;
	margin-bottom: 0;
	border-bottom: 1px solid #E2E8F0;
}
.b_box .open_content > div.location:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}
.location_data {
grid-column: 1 / -1;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 12px;
}
.location_data .counter { width: auto; flex: 1 1 auto; min-width: 0; }
.location_data .terminal {
	font-weight: 700;
	font-size: 17px;
	color: #000;
	margin: 0;
}
.location_data .terminal:empty { display: none; }
.location_data .lobby { margin: 0; font-weight: 500; }
.location_data .counter_name { margin: 0; color: var(--c-sub); font-size: 14px; }
.location_data .counter_name:empty { display: none; }
.location_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;
}
.location_data .time span { font-size: 12px; font-weight: 600; color: var(--c-sub); }

#airport .location > .products_data {
grid-column: 1;
grid-row: 2;
min-width: 0;
width: auto;
margin: 0;
float: none;
align-self: center;
}
#airport .location > .details_link {
grid-column: 2;
grid-row: 2;
margin: 0;
width: auto;
float: none;
align-self: center;
}
.products_data ul {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 6px;
margin-bottom: 0;
	list-style: none;
	padding: 0;
}
.products_data ul li {
border: 1px solid var(--c-navy);
background-color: #fff;
color: #000;
	font-size: 13px;
	font-weight: 700;
	border-radius: 999px;
	width: auto;
	text-align: center;
	display: inline-block;
	margin: 0;
	padding: .2em .9em;
}

/* airport accordion */
#airport .open_content { padding-top: .3em; display: none; }
#airport .b_box { padding: 0 32px; overflow: hidden; }
#airport .b_box:has(.open_title.is-open) { padding-bottom: 20px; }
#airport .b_box h3 { margin-bottom: 0; text-align: left; }
#airport .open_title {
	position: relative;
	cursor: pointer;
	padding: 22px 40px 22px 0;
	-webkit-tap-highlight-color: transparent;
}
#airport .open_title h3 { color: #000; transition: color .25s; }
#airport .open_title:hover h3 { color: #000; }
#airport .open_title h3::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;
}
#airport .open_title:hover h3::after { background-color: var(--c-main-line); }
#airport .open_title.is-open h3::after {
background-image: var(--toggle-minus);
	background-color: var(--c-navy);
	opacity: 1;
transform: none;
}
#airport .open_content[style*="block"] { animation: esq-reveal .35s var(--ease); }
@keyframes esq-reveal {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}

/* ---------- 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: 0;
	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;
	counter-reset: step;
}
#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;
}

/* ---------- contact ---------- */
#contact { text-align: left; }
#contact h2,
#contact .link_btm { text-align: center; }
#contact > p { font-size: 15px; text-align: left; }
#contact small { color: var(--c-sub); }
#contact ul {
padding: 0 0 0 1.4em;
list-style: disc;
display: block;
	margin-top: 20px;
}
#contact ul li {
	font-size: 14px;
list-style-type: disc;
background: transparent;
	border: 0;
border-radius: 0;
padding: 0;
margin-bottom: .5em;
	font-weight: 600;
}

/* ---------- faq ---------- */
#faq ul {
	list-style-type: none;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	padding: 0;
	gap: 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); }

/* ---------- Tablet ---------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
:root { --w-content: 720px; }
#products > .b_box { background-size: auto 100%; }
	#main-visual h1 { font-size: 1.4rem; }
	.products_list ul li { flex-basis: clamp(220px, 32%, 270px); }
	#services ul { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- SP ---------- */
@media screen and (max-width: 767px) {
	.sp_display { display: block !important; }
	.pc_display { display: none !important; }
:root { --w-content: 327px; }
	#main-visual .wrap { max-height: 360px; }
	#main-visual .wrap::before { background: linear-gradient(180deg, rgba(0, 50, 79, .75) 0%, rgba(0, 50, 79, .15) 65%, rgba(0, 50, 79, 0) 100%); }
	#main-visual h1 {
		font-size: clamp(18px, 5.4vw, 24px);
		top: 18px;
		left: 16px;
		right: 16px;
		transform: none;
	}
	main { padding-bottom: 88px; }
	.content-box { padding: 36px 24px; }
	.content-box > * { max-width: var(--w-content); }
.content-box h2 { font-size: 20px; }
	#main-tab { max-width: var(--w-content); padding: 10px 0 0; }
	#main-tab ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	overflow: visible;
	gap: 8px;
		font-size: 13px;
	border-radius: 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 {
	padding: 0 18px 0 5px;
		font-size: 12px;
	white-space: normal;
	border-radius: 7px;
	}
	#services { padding-top: 32px; }
	#services ul { grid-template-columns: repeat(2, 1fr); gap: 10px; }
#services ul li:nth-child(n) {
--service-pad-x: 8px;
--service-pad-top: 10px;
font-size: 12px;
padding: var(--service-pad-top) var(--service-pad-x) 14px;
}
	.products_list ul li { flex: 0 0 min(72%, 260px); height: auto; }
	.products_title { padding: 14px 16px 12px; }
.products_title:has(.products_countrie > img) .products_type { top: 14px; right: 16px; }
	.link_btm a { font-size: 15px; }
	.link_btm.details_link a { font-size: 14px; }
.b_box { padding: 22px 18px; margin-top: 14px; margin-bottom: 14px; }
#products > .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; }
	#airport .b_box { padding: 0 18px; }
	#airport .b_box:has(.open_title.is-open) { padding-bottom: 14px; }
	#airport .open_title { padding: 18px 36px 18px 0; }
	.location_data { display: block; }
	.location_data .counter { width: 100%; }
	.location_data .terminal { font-size: 16px; }
	.location_data .time {
		display: inline-block;
		margin-top: 10px;
		font-size: 18px;
		text-align: left;
		white-space: nowrap;
	}
	.products_data ul li { font-size: 12px; width: auto; margin: 0; }
	.link_btm.details_link { margin: 0 auto; width: fit-content; text-align: center; }
	.link_btm.details_link a { display: inline-flex; justify-content: center; }
	#airport .open_title h3::after { right: 0; }
#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; }
	#contact > p { font-size: 14px; }
	#contact ul li { font-size: 13px; }
	#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; }
}
@media screen and (max-width: 360px) {
	.content-box { padding-left: 12px; padding-right: 12px; }
	.products_data ul li { font-size: 11.5px; }
}

/* ---------- H3 typography: PC / Tablet / SP ---------- */
.content-box h3,
.b_box h3 {
	font-size: 24px;
}
@media screen and (max-width: 767px) {
	.content-box h3,
	.b_box 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; }
}