@charset "utf-8";

@page{size:A4;}

:root{
	--default-font:'Lato', 'Noto Sans JP', sans-serif;
	--google-icon:'Material Symbols Outlined';
	--main-color:#115EFA;
	--up-color:rgb(93, 182, 170);
	--down-color:rgb(250, 105, 103);
	--bg-color:#F5F7FA;
	--base-color:#111;
	--base-light-color:#666;
  --link-color:#2376E9;
  --red:#dd0000;
	--light:300;
	--normal:400;
	--medium:500;
	--bold:700;
	--heavy:900;
}

/* rem の基準を 16px に固定（base.css の html{font-size:0.95rem} を上書き）。
   これで print.css 内の rem 指定が body の 16px と同じ基準になる */
html{
	font-size:13px;
}

body{
	font-size:13px; line-height:1.6;
	background:#fff;
	-webkit-text-size-adjust:100%;
	overflow-wrap:break-word !important;
	word-wrap:break-word !important;
	box-sizing:border-box;
	-webkit-print-color-adjust:exact;
}
.page-break-before{
	page-break-before:always !important;
}
a#scrollUp{
	display:none !important;
}

.icons{
	font-family:'Material Icons';
	font-weight:normal; font-style:normal;
	font-size:1.4rem; line-height:1;
	color:#555;
	display:inline-block;
	text-transform:none;
	letter-spacing:normal;
	word-wrap:normal;
	white-space:nowrap;
	direction:ltr;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	-moz-osx-font-smoothing:grayscale;
	font-feature-settings:'liga';
	position:relative; top:5px;
}
.icons-help{
	font-family:'Material Icons';
	font-weight:normal; font-style:normal;
	font-size:1.1rem; line-height:1;
	color:#555;
	display:inline-block;
	text-transform:none;
	letter-spacing:normal;
	word-wrap:normal;
	white-space:nowrap;
	direction:ltr;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	-moz-osx-font-smoothing:grayscale;
	font-feature-settings:'liga';
	position:relative; top:3px;
}
.help:hover{
	cursor: pointer;
}

.user-container{
	display:flex;
	flex-wrap:wrap;
	gap:10px 30px;
}
.box{
	width:calc((100% - 30px) / 2);
}
.user-container#userAttributes{
	gap:10px;
}
.user-container#userAttributes > .box{
	width:calc((100% - 20px) / 3);
}
.user-container#userAttributes > .box > .border-box{
	padding:10px;
}

.w36{
	width:36%;
	flex-basis:36%;
}
.w60{
	width:60%;
	flex-basis:60%;
}
.border-box{
	box-sizing:border-box;
	border:1px solid #ddd;
	padding:1.0rem;
}
.w36 .border-box{
	padding:15px 0;
}
.graph-box{
	width:100%;
}
.graph-box > #myChart.echarts-chart,
.graph-box > #myChart02.echarts-chart{
	height:250px !important;
}
a.page-url{
	text-decoration:none;
	display:flex;
	flex-direction:column;
	gap:0.25rem;
}
a.page-url .pt-title{
	display:block;
	font-size:0.8rem; line-height:1.5; font-weight:var(--bold);
}
a.page-url:hover .pt-title{
	text-decoration:underline;
}
a.page-url .pt-url{
	display:block;
	font-size:0.9em; line-height:1.5; font-weight:var(--medium);
	color:var(--base-light-color);
}
a.page-url:hover .pt-url{
	text-decoration:none;
}

.search-page-box{
	box-sizing:border-box;
	border:1px solid #ddd;
	padding:10px 12px;
	margin:1.5rem auto;
}
section .search-page-box h3{
	font-size:1.1rem; line-height:1.8; font-weight:var(--bold);
	margin-bottom:1.0em;
}
.search-page-performance{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:2.5rem;
}
.sc-screenshot{
	box-sizing:border-box;
	width:280px;
	border:1px solid #ddd;
}
.sc-screenshot img{
	width:100%;
}
.search-page-performance > .search-data-table{
	flex:1;
	min-width:0;
}

/* header */
header{
	box-sizing:border-box;
	width:194mm; height:80px;
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:0 1.5rem;
	margin:0 auto;
}
header > .header-title{
	width:120px;
	transition:0.2s;
}
header > .member{
	display:flex;
	justify-content:flex-end;
	align-items:center;
	gap:0.75rem;
	margin-left:3.0rem;
}
header > .member > .name{
	font-size:1.0rem; line-height:1.8; font-weight:var(--bold);
}
header > .member > .name > span{
	font-size:0.9rem; font-weight:var(--normal);
	margin-left:0.3em;
}
header .print,
header > .member > a{
	display:none;
}
header > .header-controls{
	display:none;
}



/* footer */
footer{
	display:none;
}

/* container */
#container{
	box-sizing:border-box;
	width:194mm; margin:0 auto;   /* A4印刷可能幅に固定（グラフを印刷幅で描画・header と整合）。統合印刷ページもこの幅で描画される */
	padding:0 1.5rem;
	display:flex;
	flex-direction:row-reverse;
	justify-content:space-between;
	gap:2.5rem;
	position:relative;
}
/* 図表がページ境界で分割されないように（統合印刷ページで特に有効）。
   ※全幅の折れ線/棒グラフ(.graph-box / 単体の .echarts-chart)は対象外。
     avoidにすると空きがあっても丸ごと次ページへ送られ無駄な余白が出るため、通常フローで配置する。
     地図(.map-box)・マトリクス(.matrix-box)・ドーナツ(.border-box/.card-item)は分割防止を維持。 */
.card-item,
.border-box,
.search-page-box,
.matrix-box,
.map-box{
	break-inside:avoid;
	page-break-inside:avoid;
}
#side{
	display:none;
}
/* index */
ul.menu{
	width:100%;
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
}
ul.menu li{
	flex-basis:24%;
	box-sizing:border-box;
	border:1px solid #CCC;
	background:#FFF;
	text-align:center;
	padding:50px 0;
	margin-bottom:25px;
}
ul.menu li img{
	width:100px;
	margin:0 auto 30px auto;
}
ul.menu li a{
	display:block;
	font-weight:bold;
}

/* content */
#main{
	flex:1;
	min-width:0;   /* flex アイテムの min-width:auto による幅の伝播を防ぐ */
	text-align:left;
}
#main > #month{
	width:fit-content;
	font-size:1.0rem; line-height:1.8; font-weight:var(--bold);
	color:#fff;
	background:var(--main-color);
	padding:0 1.5em;
	border-radius:9999px;
	margin-bottom:2.5rem;
}
.layout-2column{
	display:flex;
	gap:2.5rem;
}
section{
	box-sizing:border-box;
	width:100%;
	border-radius:0.5rem;
	background:#FFF;
	overflow:hidden;
}
.print-group > section:not(:first-of-type){
	margin-top:40px;
}
section.outline{
	padding:0;
	border-radius:0;
	background:transparent;
}
section.date-title{
	background:transparent;
	padding:0;
	margin:15px 0 30px 0;
	width:auto;
	width:100%;
	max-width:100%;
	display:flex;
	justify-content:flex-end;
	align-items:baseline;
	position:relative;
}
section.date-title .name{
	font-size:1.2rem; line-height:180%; font-weight:bold;
}
section.date-title .name span{
	font-size:0.9rem; font-weight:normal;
}
section.date-title .month{
	font-size:0.9rem; line-height:180%;
	border-bottom:1px solid #999;
	position:absolute;
	top:0; left:0;
}
section.date-title .select-box{
	text-align:left;
	display:flex;
	align-items:center;
	margin-right:25px;
}
section.date-title .select-box p{
	font-size:0.8rem; line-height:180%; font-weight:bold;
	margin-bottom:8px;
	margin-right:15px;
}
section.date-title .select-box p i{
	font-size:1.2rem;
	margin-right:8px;
}
section.date-title .select-box span{
	display:inline-block;
	font-size:0.9rem; line-height:14px;
	position:relative; top:1px;
}
section.date-title .select-year,
section.date-title .select-month{
	display:inline-block;
	border-bottom:1px solid #999;
	overflow:hidden;
}
section.date-title .select-year:hover,
section.date-title .select-month:hover{
	border-bottom:1px dashed #333;
}
section.date-title select{
	cursor:pointer;
  width:auto; height:30px;
  font-size:0.9rem; line-height:14px;
  color:#333; text-indent:0em;
  background:transparent;
	outline:none;
	border:none;
	border-radius:0 !important;
	margin:0 0 0 5px;
	-webkit-appearance:none;
	appearance:none;
}
section.date-title select option{
}
section.date-title input[type="submit"]{
	display:inline-block;
	width:48px;
	border:none;
	font-size:0.8rem; line-height:25px;
	color:#333;
	border-radius:5px;
	cursor:pointer;
	background:rgba(0,46,111,0.9);
	background:#048DC7;
	background:transparent;
	border:1px solid #999;
	margin:0 0 0 10px;
	position:relative; top:-9px;
}


section.yearly-box{
	position:relative;
}
section.yearly-box:not(:first-of-type){
	page-break-before:always;
	break-before:page;
}
section h1{
	font-size:1.0rem; line-height:1.8;
	color:var(--base-color);
	margin-bottom:1.0rem;
}
section h1 i{
	font-size:1.8rem !important;
	top:7px;
	margin-right:10px;
}
section .description{
	font-size:0.9rem; line-height:1.8;
	margin:0px 0 20px 0;
}

section h2{
	font-size:0.9rem; line-height:180%;
	color:#444;
	margin-bottom:10px;
}
section.yearly-box h2{
	margin-bottom:20px;
}
section h3{
	font-size:0.9rem; line-height:180%; font-weight:normal;
}
section p{
	font-size:0.8rem; line-height:180%;
}
section p.caution{
//	font-size:0.8rem; line-height:180%;
	text-align:right;
	margin-bottom:50px;
}
section p.page-back{
	margin-bottom:50px;
}
section p.page-back a{
	color:#777;
}
section p.page-back .icons{
	font-size:1.0rem; line-height:1;
	top:3px;
	margin-right:0.2em;
	color:#777;
}

ul.report-menu{
	display:flex;
	flex-wrap:wrap;
	margin-bottom:50px;
}
ul.report-menu li{
	flex-basis:32%;
	box-sizing:border-box;
	margin-right:2%;
	margin-bottom:20px;
	padding:0px;
	text-align:left;
}
ul.report-menu li:nth-child(3),
ul.report-menu li:last-child{margin-right:0;}
ul.report-menu li a{
	text-decoration:none;
	display:block;
	padding:15px 35px 20px 25px;
//	border:2px solid rgba(119,158,204,1);
	border:1px solid #4d729e;
//	background:rgba(119,158,204,1);
	border-radius:5px;
	position:relative;
	transition:0.3s;
}
ul.report-menu li a::after{
	content:"▲";
	color:#4d729e;
	position:absolute;
	top:50%; right:10px;
	transform:translateY(-50%) scale(0.6,1) rotate(90deg);
}
ul.report-menu li a h2{
	font-size:1.1rem; line-height:180%;
	color:#4d729e;
	margin-bottom:0;
}
ul.report-menu li a h2 i{
	font-size:1.6rem !important;
	color:#4d729e;
	top:6px;
	margin-right:10px;
}
ul.report-menu li a p{
	font-size:0.9rem; line-height:160%;
	color:#444;
	margin-bottom:0;
}
ul.report-menu li a:hover{
	background:#4d729e;
	transition:0.3s;
}
ul.report-menu li a:hover h2,
ul.report-menu li a:hover h2 i,
ul.report-menu li a:hover p,
ul.report-menu li a:hover::after{
	color:#FFF;
}
ul.report-menu .ver-box a{
	background: #FFFFFF;
	position: relative;
	border:1px solid #a9a9a9;
}
ul.report-menu .ver-box a h2{
	top: 50%;
    position: absolute;
    transform: translateY(-50%);
}
ul.report-menu .ver-box a::after{
	content:"▲";
	color:#a9a9a9;
	position:absolute;
	top:50%; right:10px;
	transform:translateY(-50%) scale(0.6,1) rotate(90deg);
}
ul.report-menu .ver-box a h2 i{
	font-size:1.6rem !important;
	color:#a9a9a9;
	top:6px;
	margin-right:10px;
}
ul.report-menu .ver-box a h2,
ul.report-menu .ver-box a h2 i
ul.report-menu .ver-box a::after{
	color:#a9a9a9;
}
ul.report-menu .ver-box a:hover{
	background: #a9a9a9;
	
}
ul.report-menu .ver-box a:hover h2,
ul.report-menu .ver-box a:hover h2 i,
ul.report-menu .ver-box a:hover::after{
	color:#FFFFFF;
}
.outline-card{
	width:100%;
	position:relative;
}
.outline-card-nav{
	display:none;
}
.outline-card .swiper,
.outline-cards .swiper{
	overflow:visible !important;
}
.outline-card .swiper-wrapper,
.outline-cards .swiper-wrapper{
	display:flex !important;
	flex-wrap:wrap;
	gap:10px;
	transform:none !important; /* Swiperのインラインtransformを打ち消す */
}
.outline-card .swiper-slide,
.outline-cards .swiper-slide{
	box-sizing:border-box;
	width:calc((100% - 30px) / 4) !important; /* 4列（gap12px×3を差し引く） */
	margin:0 !important;
}
.outline-card .card-item,
.outline-cards .card-item{
	border:1px solid #ddd;
	padding:8px;
}
.card-item h3{
	font-size:0.75rem; line-height:1.5;
	font-weight:normal;
	color:#555;
	margin-bottom:4px;
}
.card-item .data-row{
	display:flex;
	justify-content:space-between;
	align-items:flex-end;
	flex-wrap:wrap;
}
.card-item .data{
	font-size:1.3rem; line-height:1.6; font-weight:var(--bold);
	display:flex;
	align-items:baseline;
	gap:0.08em;
}
.card-item .data .small{
	font-size:0.7rem;
	text-align:right;
}
.card-item .before-up,
.card-item .before-down,
.card-item .before-same{
	display:block;
	font-size:0.9rem; line-height:1.8; font-weight:var(--bold);
	position:relative;
}
.card-item .before-up{
	color:var(--up-color);
}
.card-item .before-down{
	color:var(--down-color);
}
.card-item .before-same{
	color:var(--base-light-color);
}
.card-item .before-up::before,
.card-item .before-down::before{
	content:"";
	width:0.75em;
	aspect-ratio:1/0.8;
	position:absolute;
	top:50%; left:0;
	transform:translate(-130%,-50%);
}
.card-item .before-up::before{
	clip-path: polygon(50% 0, 0 100%, 100% 100%);
	background:var(--up-color);
}
.card-item .before-down::before{
	clip-path: polygon(0 0, 50% 100%, 100% 0);
	background:var(--down-color);
}
.card-item .before-same::before{
	content:"";
	width:0.75em;
	aspect-ratio:1/0.2;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	background:var(--base-light-color);
	position:absolute;
	top:50%; left:0;
	transform:translate(-150%,-50%);
}

.card-item .sparkline-wrap{
	margin-top:auto;
	padding-top:5px;
	width:100% !important;
	height:36px;        /* style.css と同値。明示高さで縮小の基準を作る */
	overflow:hidden;    /* はみ出したcanvasをクリップ */
}
/* ECharts が画面幅で焼いた canvas(インラインpx) をカード幅に縮小させる */
.card-item .sparkline-wrap > div,      /* #spark-* コンテナ */
.card-item .sparkline-wrap > div > div,/* ECharts生成の内部ラッパ */
.card-item .sparkline-wrap canvas{
	width:100% !important;
	height:100% !important;
}

/* ユーザー属性/アクセス環境の円・棒グラフ（JSリサイズ対象外）を印刷幅に縮小 */
.user-container > .box > .border-box > .echarts-chart{
	width:100% !important;
	height:160px !important;
	overflow:hidden;
}
.user-container > .box > .border-box > .echarts-chart > div{
	width:100% !important;
	height:100% !important;
}
/* canvasは object-fit:contain でアスペクト比維持（円グラフを楕円にせず内接） */
.user-container > .box > .border-box > .echarts-chart canvas{
	width:100% !important;
	height:100% !important;
	object-fit:contain !important;
	object-position:center !important;
}
.swiper-pagination{
	display:none;
}

ul.outline{
}
ul.outline li{
	box-sizing:border-box;
	padding:25px 30px;
	text-align:left;
}
ul.outline li .data{
	font-size:2.4rem; line-height:1.8;
	font-weight:bold;
}
ul.outline li .data .small{
	font-size:1.6rem;
	margin-left:5px;
}
ul.outline-search-data li{
	border-bottom:none !important;
}
.sc-cards{
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:16px;
	margin-bottom:1.5rem;
}
.sc-cards .card-item{
	background:var(--bg-color);
}

ul.outline span.before-up{
	display:block;
	font-size:1.0rem; line-height:1.8; font-weight:bold;
	color:#009900;
}
ul.outline span.before-down{
	display:block;
	font-size:1.0rem; line-height:1.8; font-weight:bold;
	color:#FF0000;
}
ul.outline span.before-up::before,
ul.outline span.before-down::before,
ul.outline span.before-same::before{
	content:"➡︎";
	display:inline-block;
}
ul.outline span.before-down::before{
	transform:rotate(45deg);
}
ul.outline span.before-up::before{
	transform:rotate(-45deg);
}
ul.outline span.before-same{
	display:block;
	font-size:1.0rem; line-height:1.8; font-weight:bold;
	//margin-top:-15px;
	color:#777;
}
ul.outline span.before-red{
	color:#FF0000 !important;
}
ul.outline span.before-green{
	color:#009900 !important;
}
ul.outline span.before-gray{
	color:#777 !important;
}

section:has(table#accessChannel),
section:has(table#searchPerformance),
section:has(.search-page-box){
	page-break-before:always;
	break-before:page;
}

section table{
	width:100%;
	border-collapse:collapse;
	table-layout:fixed;
	word-break:break-all;
}
section table thead{
	background:var(--main-color);
	font-weight:var(--bold);
	color:#fff;
}
section table thead > tr > th,
section table thead > tr > td{
	font-size:0.7rem; line-height:1.5;
	padding:0.2rem 1.0rem;
}
section table thead > tr > td{
	text-align:right;
}
section table thead > tr > th.date{
	width:3.6em;
	text-align:center;
}
section table tbody > tr{
	transition: background 0.12s;
	border-bottom:1px solid #eee;
}
section table tbody > tr:nth-child(even){
	background:#f8f9fa;
}
section table tbody > tr:last-child{
	border-bottom:none;
}
section table tbody > tr:hover{
	background:#eef3ff;
}
section table tbody > tr > th,
section table tbody > tr > td{
	font-size:0.8rem; line-height:1.5;
	padding:0.5rem 1.0rem;
}
section table tbody > tr > th.date{
	text-align:right;
	padding-left:0;
}
section table tbody > tr > td{
	text-align:right;
}

section .tablesorter-default thead .headerSortUp,
section .tablesorter-default thead .tablesorter-headerAsc,
section .tablesorter-default thead .tablesorter-headerSortUp,
section .tablesorter-default thead .headerSortDown,
section .tablesorter-default thead .tablesorter-headerDesc,
section .tablesorter-default thead .tablesorter-headerSortDown{
	border-bottom:none;
}
section .tablesorter-default .tablesorter-header::after,
section .tablesorter-default thead .headerSortDown::after,
section .tablesorter-default thead .tablesorter-headerDesc::after,
section .tablesorter-default thead .tablesorter-headerSortDown::after{
	display:none;
}

section table.page-table#accessChannel{
	margin-bottom:3.0rem;
}
section table.page-table{
	width:100%;
	border-collapse:collapse;
	table-layout:auto;
	border-radius:0.3rem 0.3rem 0 0;
	overflow:hidden;
}
section table.page-table > thead{
	background:var(--main-color);
	color:#fff;
}
section table.page-table tr > th{
	width:100%;
}
section table.page-table tr > td{
	white-space:nowrap;
}
section table.page-table > tbody > tr > th,
section table.page-table > tbody > tr > td{
	padding:0.5rem 1.0rem;
}

section table.page-table td.rating{
	text-align:center;
	padding:0.5rem 1.5rem;
}
section table.page-table tbody td.rating{
	font-size:1.0rem;
	font-weight:var(--bold);
}
section table.page-table td.td-valueA{
	color:#52c41a;
	background:#F5FCF2;
}
section table.page-table td.td-valueB{
	color:#115EFA;
	background:#F6F9FF;
}
section table.page-table td.td-valueC{
	color:#FFA940;
	background:#FFFAF4;
}
section table.page-table td.td-valueD{
	color:#ff4d4f;
	background:#FFF6F6;
}

.radio-wrapper{
	width:100%;
	display:flex;
}
.radio-wrapper input{display:none;}
.radio-wrapper label{
	box-sizing:border-box;
  cursor:pointer;
	width:20% !important;
  margin:0;
  padding:14px 5px;
	font-size:0.9rem;
	line-height:140%;
  border:1px solid #CCC;
	border-right:none;
  background:#F6F6F6;
  text-align:center;
  transition:.2s;
}
.radio-wrapper label:first-of-type{
	border-radius:5px 0 0 5px;
}
.radio-wrapper label:last-of-type{
  border-right:1px solid #CCC;
	border-radius:0 5px 5px 0;
}
.radio-wrapper input[type="radio"]:checked + label {
  background-color:rgba(0,46,111,0.9);
  color:#fff;
}

.matrix-box{
	width:100%;
	margin:3.0rem 0;
}
.matrix-box > .echarts-chart{
	width:100% !important;
	height:480px !important;
}
/* 全幅グラフ（マトリクス／棒・折れ線）は object-fit ではなく width:100% でボックスを充填。
   A4基準で焼いたバッファを実際の印刷ボックス幅まで伸ばし、見切れ・余りを防ぐ */
.matrix-box > .echarts-chart > div,
.matrix-box > .echarts-chart canvas,
.graph-box > .echarts-chart > div,
.graph-box > .echarts-chart canvas{
	width:100% !important;
	height:100% !important;
}
.parameter-caution{
	box-sizing:border-box;
	width:96%;
	margin:20px auto 0;
	text-align:center;
}
ul.pagevalue-parameter{
	display:flex;
	justify-content:space-between;
	margin:15px auto 20px auto;
}
ul.pagevalue-parameter li{
	box-sizing:border-box;
	flex-basis:22%;
	font-size:0.7rem; line-height:1.6;
	text-align:center;
	border:2px solid rgba(82,196,26,0.6);
	background:rgba(82,196,26,0.1);
	border-radius:3px;
	padding:10px;
	margin-right:50px;
	position:relative;
}
ul.pagevalue-parameter li:nth-child(2){
	border-color:rgba(17,94,250,0.6);
	background:rgba(17,94,250,0.1);
}
ul.pagevalue-parameter li:nth-child(3){
	border-color:rgba(255,169,64,0.6);
	background:rgba(255,169,64,0.1);
}
ul.pagevalue-parameter li:nth-child(4){
	border-color:rgba(255,77,79,0.6);
	background:rgba(255,77,79,0.1);
}
ul.pagevalue-parameter li strong{
	display:block;
	font-size:0.8rem; line-height:1.6;
}
ul.pagevalue-parameter li::after{
	content:"＞";
	font-size:1.8rem; line-height:100%;
	position:absolute;
	top:50%; right:-40px;
	transform:translateY(-50%) scale(0.5,1);
}
ul.pagevalue-parameter li:last-child{
	margin-right:0;
}
ul.pagevalue-parameter li:last-child::after{
	content:""; display:none;
}

ul.tab-menu{
	display:none;
}
.yearly-data .content{
	display:block !important;
}
.yearly-data .content > section{
	padding:0;
	filter:none;
}
.yearly-data .content:has(#page-lan20){
	page-break-before:always;
	break-before:page;
}

dl{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	margin-bottom:30px;
	font-size:0.9rem; line-height:180%;
}
dl dt{
	flex-basis:28%;
	position:relative;
	margin-bottom:30px;
}
dl dt::after{
	content:"";
	width:100%;
	border-top:2px dotted #999;
	position:absolute;
	top:13px; left:0;
}
dl dt span{
	background:#FFF;
	position:relative; z-index:2;
	padding-right:10px;
}
dl dd{
	flex-basis:70%;
	margin-bottom:30px;
}
dl ul li{
	list-style:disc outside;
	margin-left:22px;
}
dl ol li{
	list-style:decimal outside;
	margin-left:22px;
}

section:has(ul.topics-list),
section:has(ul.report-list){
	display:none;
}


/* ==============================
AI診断
============================== */
section.ai-diagnosis{
	padding:0;
}
section.ai-diagnosis > h1{
	background:var(--main-color);
	font-size:1.0rem; line-height:1.6;
	color:#fff;
	padding: 0.5rem 1.0rem;
	margin-bottom:0;
}
.ai-diagnosis-container{
	padding:10px 0;
	position:relative;
}
.ai-diagnosis-container > .ai-grade{
	position:absolute;
	top:1.0rem; right:1.0rem;
}
.ai-grade .grade-label{
	display:none;
}
.ai-grade .grade-value{
	font-size:6.0rem; line-height:1; font-weight:var(--heavy);
	opacity:0.3;
}
.grade-a{color:#52c41a;}
.grade-b{color:#115EFA;}
.grade-c{color:#FFA940;}
.grade-d{color:#F5222D;}
.ai-diagnosis .ai-generated{
	font-size:0.8rem; line-height:1.8;
	color:var(--base-light-color);
	text-align:right;
	margin-top:1.0rem;
}

/* ── AI診断 キャッチコピー・詳細 ────────────── */
.ai-diagnosis .ai-catchcopy{
	padding-right:7.0rem;
	font-size:1.0rem; line-height:1.6; font-weight:var(--bold);
}
ul.ai-diagnosis-list{
	margin-top:1.25rem;
	display:flex;
	flex-direction:column;
	gap:1.0rem;
}
ul.ai-diagnosis-list > li{
	list-style:disc outside;
	margin-left:1.25em;
}
ul.ai-diagnosis-list > li > h3{
	font-size:1.0rem; line-height:1.8; font-weight:var(--bold);
	color:var(--down-color);
}
ul.ai-diagnosis-list > li > p{
	font-size:0.9rem; line-height:1.8;
}
.ai-diagnosis .ai-suggestion{
	box-sizing:border-box;
	width:100%;
	background:rgba(93,182,170,0.03);
	border:1px solid var(--up-color);
	border-radius:0.5rem;
	padding:15px 15px;
	margin-top:2.5rem;
}
.ai-diagnosis .ai-suggestion h2{
	width:fit-content;
	font-size:1.0rem; line-height:1.8; font-weight:var(--bold);
	color:#fff;
	background:var(--up-color);
	padding:0 1.5em;
	border-radius:9999px;
	margin-bottom:1.0rem;
}
.ai-diagnosis .ai-suggestion .ai-catchcopy{
	padding-right:0;
}
.ai-diagnosis .ai-detail{
	border-top:1px dashed var(--up-color);
	margin-top:2.0rem;
	padding-top:2.0rem;
	display:flex;
	flex-direction:column;
	gap:2.0rem;
}
.ai-diagnosis .ai-detail-block{
}
.ai-diagnosis .ai-detail-block h3{
	font-size:1.0rem; line-height:1.8; font-weight:var(--bold);
	color:var(--base-light-color);
	color:var(--up-color);
}
.ai-diagnosis .ai-detail-block p{
	font-size:0.9rem; line-height:1.8;
}


/* ==============================
カレンダー
============================== */
section:has(.access-cal){
	position:relative;
	page-break-before:always;
	break-before:page;
}
section .access-cal {
	width:100%;
	border-collapse:separate;
	border-spacing:5px;
	table-layout:fixed;
	margin-top:1.5rem;
}
section .access-cal caption{
	font-size:1.1rem; line-height:1.8; font-weight:var(--bold);
	text-align:center;
	margin-bottom:1.0rem;
}
section .access-cal thead{
	background:transparent;
	color:var(--base-light-color);
}
section .access-cal thead > tr > th{
	font-size:0.8rem; line-height:1.8; font-weight:var(--bold);
	padding:0;
}
section .access-cal thead th.ac-sun{
	color:#ef4444;
}
section .access-cal thead th.ac-sat{
	color:#3b82f6;
}
section .access-cal tbody > tr{
	background:transparent !important;
}
section .access-cal tbody > tr > td{
	padding:1.5rem 0.5rem 0.5rem;
	border:1px solid #e0e0e0;
	border-radius:0.25rem;
	text-align:left;
	vertical-align:bottom;
	position:relative;
}
section .access-cal td.ac-empty{
	background:transparent;
	border:none;
}
.ac-day{
	display:block;
	font-size:1.2rem; line-height:1.6; font-weight:var(--bold);
	color:var(--base-light-color);
	position:absolute;
	top:0rem; left:0.75rem;
	opacity:0.2;
}
.ac-day.ac-sun{
	color:var(--down-color);
}
.ac-day.ac-sat{
	color:var(--link-color);
}
.ac-data{
	display:flex;
	justify-content:flex-end;
	align-items:baseline;
	flex-wrap:wrap;
	gap:0 0.25rem;
}
.ac-data.pv{
	gap:0 0.35rem;
}
.ac-data > .label{
	font-size:0.6rem; line-height:1.6;
	color:var(--base-light-color);
}
.ac-data > .num{
	font-size:1.0rem; line-height:1.6; font-weight:var(--bold);
}
.ac-data.user > .num{
	color:var(--up-color);
}
.ac-data.pv > .num{
	color:var(--main-color);
}
.ac-zero{
	color:#ccc;
}
.ac-filter{
	display:none;
}

section table.bar-table{
	width:100%;
	border-collapse:collapse;
	table-layout:auto;
	border-radius:0.3rem 0.3rem 0 0;
	overflow:hidden;
}
section table.bar-table > thead{
	background:rgba(0,0,0,0.05);
	color:var(--base-light-color);
}
section table.bar-table > thead > tr{
}
section table.bar-table > thead > tr > th{
	font-size:0.7rem;
	color:var(--base-color);
}
section table.bar-table thead > tr > th,
section table.bar-table thead > tr > td{
	padding:0.2rem 1.0rem;
}
section table.bar-table tr > th{
	width:100%;
}
section table.bar-table tr > td{
	white-space:nowrap;
}
section table.bar-table > tbody > tr{
	background:#fff;
	border:none;
}
section table.bar-table > tbody > tr > th,
section table.bar-table > tbody > tr > td{
	padding:0.5rem 1.0rem;
}
section table.bar-table > tbody > tr > th{
	color:var(--main-color);
	background:linear-gradient(
		to right,
		rgba(17,94,250,.06) var(--bar,0%),
		transparent var(--bar,0%))
	no-repeat 0 50%/100% 60%;
}
section table.bar-table + .table-caption{
	font-size:0.7rem; line-height:1.8;
	color:var(--base-light-color);
	text-align:right;
	padding-top:0.5em;
}


/* ==============================
アクセスエリア
============================== */
section:has(#japanMap){
	page-break-before:always;
	break-before:page;
}
.area-container{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
}
.area-container > .map-box{
	box-sizing:border-box;
	width:50%;
	border:1px solid #ddd;
	padding:0 1.0rem;
}
.area-container > .data-table-box{
	width:46%;
}
/* 国内/世界マップ（JSリサイズ対象外）を印刷幅に縮小 */
.area-container > .map-box > .echarts-chart{
	width:100% !important;
	height:360px !important;
	overflow:hidden;
}
.area-container > .map-box > .echarts-chart > div{
	width:100% !important;
	height:100% !important;
}
/* マップも object-fit:contain でアスペクト比維持（地図を横圧縮しない） */
.area-container > .map-box > .echarts-chart canvas{
	width:100% !important;
	height:100% !important;
	object-fit:contain !important;
	object-position:center !important;
}


/* ==============================
Juicer
============================== */
.juicer-count{
	font-size:1.0rem; line-height:1.8;
	margin-bottom:0.5em;
}
section table#juicerCompanies tr > td{
	padding:0.8em 2.0em;
}

/* ==============================
個別ページデータ
============================== */
.page-back{
	width:fit-content;
	font-size:0.8rem; line-height:1.8;
	padding-left:1.0em;
	position:relative;
	margin-bottom:2.5rem;
}
.page-back::before{
	content:"";
	width:0.45em;
	aspect-ratio:0.5/1;
	clip-path: polygon(100% 0, 0 50%, 100% 100%);
	background:#999;
	position:absolute;
	top:50%; left:0;
	transform:translateY(-50%);
}
.page-back > a{
	display:block;
	text-decoration:none;
	color:var(--base-light-color);
}
.page-back > a:hover{
	text-decoration:underline;
}
section.outline > .page-title{
	display:flex;
	align-items:center;
	gap:2.5rem;
}
.page-title > a > figure{
	box-sizing:border-box;
	width:240px;
	aspect-ratio:3/2;
	overflow:hidden;
	margin:0;
}
.page-title > a > figure > img{
	width:100%; height:100%;
	object-fit:cover;
	object-position:center top;
}
.page-title > a > figure.dummy{
	border:1px solid #ccc;
	background:#fcfcfc;
	position:relative;
}
.page-title figure.dummy::after{
	content:"no picture";
	font-size:0.8rem; line-height:1.6;
	color:var(--base-light-color);
	white-space:nowrap;
	text-transform:uppercase;
	position:absolute;
	top:50%; left:50%;
	transform:translate(-50%,-50%);
}
.page-data-title{
	display:flex;
	justify-content:space-between;
	align-items:baseline;
}