@charset "UTF-8";

/* ========================================================
   Base Styles & Layout
   ======================================================== */
body {
    /* フォント設定はbodyのみに指定 */
    font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    color: #333;
    background-color: #fff;
    line-height: 1.8;
	font-size: 16px;
}

/* * 重要なポイント：
 * 背景は各sectionで100%（画面いっぱい）に広げ、
 * コンテンツ部分は「content-width」で最大1000pxに制限し、中央揃えにします。
 */
@media screen and (min-width: 769px) {
    .content-width {
        max-width: 1000px;
        margin: 0 auto;
        padding: 80px 20px; /* スマホやタブレット用の余白を含める */
        width: 100%;
    }
}

/* ========================================================
   Color Utilities (厳密な色指定のみ)
   ======================================================== */
.bg-main:not(#_) { background-color: #b21f31; }
.bg-black:not(#_) { background-color: #333; }
.bg-light:not(#_) { background-color: #f3f3f3; }
.bg-pink:not(#_) { background-color: #f4e6e7; }
.bg-blue:not(#_) { background-color: #e6eff4; }
.bg-accent:not(#_) { background-color: #ffe762; }
.bg-white:not(#_) { background-color: #fff; }

.text-main:not(#_) { color: #b21f31; font-weight: bold; }
.text-accent:not(#_) { color: #ffe762; font-weight: bold; }
.text-white:not(#_) { color: #fff; font-weight: bold; }
.text-blue:not(#_) { color: #235474; font-weight: bold; }

.border-main:not(#_) { border: 4px solid #b21f31; }
.border-pink:not(#_) { border: 2px solid #f4e6e7; }
.border-white:not(#_) { border: 2px solid #fff; }
.border-accent:not(#_) { border: 2px solid #ffe762; }
.border-left-main:not(#_) { border-left: 6px solid #b21f31; }
.border-gray:not(#_) { border: 2px solid #ddd; }
.border-light:not(#_) { border: 2px solid #f3f3f3; }



.highlight-yellow {
    background: linear-gradient(transparent 60%, #ffe762 60%);
    font-weight: bold;
}

.highlight-pink {
    background: linear-gradient(transparent 60%, #f9e0e1 60%);
    font-weight: bold;
}

.note {
    font-size: 13px;
    color: #333;
    margin-top: 15px;
	text-align: left;
}

.list-style li {
	padding-left: 1em;
	position: relative;
}
.list-style li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #ddd;
	transform: translateY(-50%);
}

.img-wrap {
	display: block;
	text-align: center;
}

img {
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}
.mb20:not(#_) {
	margin-bottom: 20px;
}
.mb30:not(#_) {
	margin-bottom: 30px;
}

/* 共通タイトル */
.sec-title {
    text-align: center;
    font-weight: bold;
    margin-bottom: 30px;
    line-height: 1.5;
	font-feature-settings: "palt";
}
.sec-title-sub {
	font-size: 18px;
	display: inline-block;
	margin-bottom: 10px;
	background-color: #f4e6e7;
	padding: 7px 20px 5px;
	line-height: 1.2;
}
.sec-title-sub-white {
	background-color: #fff;
}
.sec-title-main {
	display: block;
}
.sec-title-main .lg {
	font-size: 30px;
	color: #b21f31;
	border-bottom: 1px solid #b21f31;
	margin: 0 5px;
	vertical-align: baseline;
}
.sec-title-main .lg.text-accent {
	color: #ffe762;
	border-bottom: 1px solid #ffe762;
}
@media (min-width: 769px) {
	.sec-title {
		font-size: 24px;
		margin-bottom: 40px;
	}
	.sec-title-main .lg {
		font-size: 36px;
	}
}

@media (min-width: 769px) {
	.block-pc:not(#_) {
		display: block;
	}
	.block-sp:not(#_) {
		display: none;
	}
}
/* ========================================================
   Responsive (タブレット・スマホ対応)
   ======================================================== */
@media (max-width: 768px) {
	.block-pc:not(#_) {
		display: none;
	}
	.block-sp:not(#_) {
		display: block;
	}
	img {
		width: 100%;
		height: auto;
		max-width: 100%;
	}
    .content-width { padding: 50px 15px; }
    .sec-title { font-size: 24px; }
    .cta-message strong { font-size: 20px; }
}


/* ========================================================
   Sections
   ======================================================== */

.header {
	text-align: center;
	padding: 20px 0;
}
@media (max-width: 768px){
	.header {
		padding: 15px 0;
	}
	.header_logo {
		width: 70%;
		margin: 0 auto;
	}
}

/* KV */
.kv-wrap {
	text-align: center;
}
.kv-main {
    background-image: url('/lp/internet/torrent/2604/img/bg-kv_pc.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.kv-sub {
	background: #b21f31;
	padding: 30px 0 25px;
}

@media (min-width: 769px) {
	.kv-main {
		padding-top: 40px;
	}
}

/* お悩み */
.sec-worries {
	position: relative;
	padding-bottom: 10px;
}
.sec-worries::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    margin: 0 auto;
    border-left: 40px solid transparent;
    border-right: 40px solid transparent;
    border-top: 30px solid #b21f31;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
}

.worries-box {
    display: flex;
	gap: 20px;
}
.worry-item {
	flex: 1;
    background-color: #fff;
	border: 10px solid #333;
    padding: 20px;
    font-weight: bold;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
@media (max-width: 768px){
	.worries-box {
		flex-direction: column;
	}
	.worry-img {
		max-width: 100px;
	}
	.worry-text {
		flex: 1;
	}
	.worry-item {
		display: flex;
		align-items: center;
		gap: 15px;
	}
	.worry-item:nth-child(even) {
		flex-direction: row-reverse;
	}
}
@media (min-width: 769px) {
	.sec-worries::after {
		border-left: 50px solid transparent;
		border-right: 50px solid transparent;
		border-top: 40px solid #b21f31;
	}
	.worry-text {
		margin-top: 15px;
	}
}

/* リスクボックス */
.sec-title-appeal {
	position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
	text-align: center;
	margin-bottom: 20px;
	line-height: 1.5;
}
.sec-title-appeal::before {
    content: "";
    display: inline-block;
    width:46px;
    height: 40px;
    background: url('/lp/internet/torrent/2604/img/icon-appeal.svg') no-repeat center center / contain;
    margin-right: 12px;
    vertical-align: middle;
}
.appeal-desc {
    margin-bottom: 20px;
}

.risk-box {
    padding: 20px 20px 30px;
    margin: 0 auto;
}

.risk-title {
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px;
	border-bottom: 1px solid #b21f31;
}

.risk-list {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}

.risk-list li {
    padding: 4px 10px 2px 35px;
    position: relative;
    font-weight: bold;
	color: #fff;
	background: #b21f31;
	border-radius: 20px;
}

.risk-list li::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translateY(-50%);
    width: 23px;
    height: 23px;
    background: url('/lp/internet/torrent/2604/img/icon-appeal-check.svg') no-repeat center center / contain;
}

@media (max-width: 768px){
	.sec-title-appeal {
		font-size: 20px;
	}
	.risk-list {
		flex-direction: column;
	}
}

@media (min-width: 769px) {
	.sec-appeal .content-width {
		padding: 60px 20px 80px;
	}
	.sec-title-appeal {
		font-size: 24px;
		margin-bottom: 30px;
	}
	.sec-title-appeal::before {
		width: 55px;
		height: 55px;
		margin-right: 15px;
	}
	.appeal-desc {
		text-align: center;
		margin-bottom: 30px;
	}
	.risk-box {
		max-width: 600px;
	}
	.risk-list li {
		width: calc((100% - 20px) / 2);
	}
}

/* メリット */
.benefit-item {
    padding: 30px;
    border-radius: 8px;
    margin-bottom: 25px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.benefit-head {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
	border-bottom: 1px solid #ddd;
}

.benefit-head .num {
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    font-weight: bold;
    font-size: 18px;
	color: #fff;
}

.benefit-head h3 {
    font-size: 20px;
    font-weight: bold;
	line-height: 1.5;
	flex: 1;
}

/* 注意喚起 */
.warning-title {
    text-align: center;
    font-size: 26px;
    margin-bottom: 40px;
    font-weight: bold;
}

.warning-content {
    padding: 30px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
	gap: 20px;
}

.warning-content h3 {
    font-weight: bold;
    font-size: 20px;
    margin-bottom: 20px;
}
@media (max-width: 768px) {
	.warning-content {
		flex-direction: column;
	}
}
@media (min-width: 769px) {
	.warning-content img {
		max-width: 250px;
	}
}

/* CTA */
.cta-message {
    text-align: center;
    font-size: 22px;
    margin-bottom: 30px;
}

.cta-message strong {
    font-size: 32px;
}

.cta-buttons {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: 500px;
    margin: 0 auto;
}

.cta-tel-pc {
	color: #ffe762;
	text-align: center;
	line-height: 1.5;
}
.cta-tel-pc .cta-tel-number {
    font-size: 54px;
    font-weight: bold;
    position: relative;
    padding-left: 65px;
    display: inline-block;
	line-height: 1;
}
.cta-tel-pc .cta-tel-number::before {
    content: '';
    display: inline-block;
    width: 50px;
    height: 50px;
    background: url('/lp/internet/torrent/2604/img/icon-tel-yellow.svg') no-repeat center center / contain;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}
.cta-tel-pc .cta-tel-sub {
	font-size: 16px;
	position: relative;
	display: block;
	vertical-align: middle;
}

.btn {
    display: block;
    text-align: center;
    padding: 20px;
    border-radius: 60px;
    font-weight: bold;
    font-size: 20px;
    text-decoration: none;
    box-shadow: 0 6px 15px rgba(0,0,0,0.15);
    transition: transform 0.2s, box-shadow 0.2s;
}
.btn:hover {
	opacity: 0.8;
	box-shadow: none;
}
.cta-tel-sp {
	background: #ffe762;
	color: #333;
	padding: 15px;
}
.cta-tel-sp .cta-tel-number {
	font-size: 24px;
	position: relative;
	padding-left: 52px;
	display: inline-block;
	vertical-align: middle;
	line-height: 1;
}
.cta-tel-sp .cta-tel-number::before {
	content: '';
	display: inline-block;
	width: 40px;
	height: 40px;
	background: url('/lp/internet/torrent/2604/img/icon-tel-black.svg') no-repeat center center / contain;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}
.cta-tel-sp .cta-tel-sub {
	display: block;
	font-size: 16px;
}
.cta-web {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	background-color: #fff;
	color: #b21f31;
}
.cta-web-time {
	font-size: 16px;
	background: #b21f31;
	color: #fff;
	padding: 5px 20px;
	border-radius: 20px;
}
.cta-web-text {
	font-size: 28px;
}
@media (max-width: 768px) {
	.cta-buttons {
		gap: 20px;
	}
	.cta-web {
		padding: 15px;
		gap: 10px;
	}
	.cta-web-time {
		font-size: 15px;
		padding: 5px 10px;
	}
	.cta-web-text {
		font-size: 24px;
	}
}

.btn:active {
    transform: translateY(2px);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

/* 強み */
.strength-box {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.strength-item {
    padding: 30px;
    border-radius: 0 8px 8px 0;
	align-items: start;
}
.strength-item h3 {
    font-size: 20px;
    font-weight: bold;
}
.strength-item-privacy {
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	margin-top: 20px;
}
.strength-item-privacy h4 {
	background: #f4e6e7;
	padding: 5px 10px;
	font-weight: bold;
	margin-bottom: 10px;
}
@media (max-width: 768px) {
	.strength-item img {
		display: block;
		width: 40%;
		margin: 20px auto;
	}
}
@media (min-width: 769px) {
	.strength-item {
		display: grid;
		grid-template-columns: 100px 1fr;
		gap: 15px 20px;
	}
	.strength-item h3 {
		grid-column: 2 / -1;
	}
	.strength-item img {
		grid-column: 1;
		grid-row: 1 / span 2
	}
}

/* ========================================================
   解決事例 (Case Study)
   ======================================================== */
.sec-case-study {
	background: #f3f3f3;
}
.case-box {
    overflow: hidden;
    box-shadow: 0 6px 15px rgba(0,0,0,0.1);
    max-width: 800px; /* 文章が長いため、読みやすい幅に少し絞る */
    margin: 0 auto;
	background: #fff;
}

.case-title {
    font-size: 24px;
    font-weight: bold;
    line-height: 1.5;
	padding: 30px 40px;
	text-align: center;
	background: #333;
	color: #fff;
}

.case-body {
    padding: 40px;
}

.case-section {
    margin-bottom: 30px;
}

.case-section:last-child {
    margin-bottom: 0;
}

.case-heading {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 15px;
    padding-bottom: 2px;
    border-bottom: 2px solid #ddd;
}
@media (max-width: 768px) {
    .case-title {
        font-size: 18px;
		padding: 20px 15px;
    }
    .case-header {
        padding: 20px 15px;
    }
    .case-body {
        padding: 20px 15px;
    }
    .case-heading {
        font-size: 18px;
    }
}

/* 費用テーブル */
.cost-table-wrapper {
    max-width: 800px;
    margin: 0 auto 40px;
}

.cost-table {
    width: 100%;
    border-collapse: collapse;
	border: 2px solid #ddd;
}

.cost-table-caption {
	margin-bottom: 20px;
	text-align: center;
}
.cost-table-bubble {
    display: inline-block;
    position: relative;
    background: #ffe762;
    color: #333;
    border-radius: 30px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 15px;
	line-height: 1.5;
}
.cost-table-bubble::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -10px;
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid #ffe762;
}
.cost-table-text{
	display: inline-block;
	background: #333;
	color: #fff;
	padding: 5px 20px;
	line-height: 1.5;
}

.cost-table th, .cost-table td {
    padding: 25px;
	vertical-align: middle;
}

.cost-table tr:not(:last-child) th {
	border-bottom: 2px solid #fff;
}
.cost-table tr:not(:last-child) td {
	border-bottom: 2px solid #ddd;
}

.cost-table th {
    width: 30%;
    font-weight: bold;
}

@media (max-width: 768px) {
	.cost-table-wrapper {
		margin-bottom: 20px;
	}
	.cost-table-caption {
		text-align: center;
	}
	.cost-table th,
	.cost-table td {
		display: block;
		width: 100%;
		padding: 15px;
	}
	.cost-table tr:not(:last-child) th, .cost-table tr:not(:last-child) td {
		border-bottom: none;
	}
}

/* 保証 */
.guarantee-box {
    padding: 50px 30px;
    text-align: center;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}

.guarantee-title {
    display: inline-block;
    padding: 10px 30px;
    border-radius: 5px;
    margin-bottom: 20px;
    font-weight: bold;
    font-size: 20px;
}

.guarantee-box h3 {
    font-size: 24px;
    margin-bottom: 30px;
    font-weight: bold;
	line-height: 1.5;
}

@media (max-width: 768px) {
	.guarantee-box {
		padding: 30px;
	}
	.guarantee-title {
		font-size: 18px;
	}
	.guarantee-box h3 {
		font-size: 20px;
	}
	.guarantee-text {
		text-align: left;
	}
}

@media (max-width: 768px) {
	.flow-img {
		max-width: 500px;
		margin: 0 auto;
	}
}

/* QA */
.qa-list {
	background: #fff;
	border-radius: 8px;
	margin-bottom: 20px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.qa-list:not(:last-child) {
	margin-bottom: 20px;
}
.qa-toggle {
	display: flex;
	align-items: center;
	gap: 20px;
    padding: 30px 30px 30px 95px;
    font-weight: bold;
    font-size: 18px;
    border-radius: 8px 8px 0 0;
    position: relative;
	cursor: pointer;
}
.qa-toggle:hover {
	opacity: 0.8;
}

.qa-toggle::before {
    content: "Q";
    display: flex;
	align-items: center;
	justify-content: center;
    color: #b21f31;
	background: #f3f3f3;
	width: 45px;
	height: 45px;
	border-radius: 50%;
    font-weight: bold;
    font-size: 18px;
	position: absolute;
	left: 30px;
	top: 20px;
}

.qa-toggle::after {
    content: "+";
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 28px;
    color: #888;
    pointer-events: none;
    transition: transform 0.2s;
}

.qa-toggle.open::after {
    content: "−";
    transform: translateY(-50%) rotate(0deg);
}

.qa-content {
	display: none;
    padding: 10px 30px 30px 95px;
    border-radius: 0 0 8px 8px;
	position: relative;
}

.qa-content::before {
    content: "A";
    display: flex;
	align-items: center;
	justify-content: center;
    color: #b21f31;
	background: #f4e6e7;
	width: 45px;
	height: 45px;
	border-radius: 50%;
    font-weight: bold;
    font-size: 18px;
	position: absolute;
	left: 30px;
	top: 10px;
}


@media (max-width: 768px) {
    .qa-toggle {
        font-size: 16px;
		gap: 15px;
        padding: 16px 25px 16px 65px;
    }
	.qa-toggle::before {
		top: 12px;
		left: 15px;
		font-size: 14px;
		width: 35px;
		height: 35px;
	}
	.qa-toggle::after {
		right: 10px;
	}
	.qa-content {
        padding: 0 25px 25px 65px;
	}
	.qa-content::before {
		left: 15px;
		font-size: 14px;
		width: 35px;
		height: 35px;
	}
}

.floating-cta {
	position: sticky;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 999;
	box-shadow: 0 4px 16px rgba(0,0,0,0.10);
	background: #fff;
	display: flex;
	justify-content: center;
}
.floating-cta-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 1000px;
	padding: 15px 10px;
	gap: 30px;
}
.floating-tel-number {
	font-size: 40px;
	position: relative;
	padding-left: 52px;
	display: inline-block;
	vertical-align: middle;
	line-height: 1;
	color: #333;
	font-weight: bold;
}
.floating-tel-number::before {
	content: '';
	display: inline-block;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	background: url('/lp/internet/torrent/2604/img/icon-tel.svg') no-repeat center center/contain;
}

.floating-tel-sub {
	display: block;
	text-align: center;
	font-size: 14px;
}
.floating-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1 1 48%;
	padding: 15px 6px 13px 6px;
	border-radius: 8px;
	background: #ffe762;
	color: #333;
	font-weight: bold;
	font-size: 17px;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.floating-btn.floating-web {
	background: #b21f31;
	color: #fff;
}
.floating-btn:hover {
	opacity: 0.92;
}
.floating-tel-main, .floating-web-main {
	font-size: 24px;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5px;
	line-height: 1;
	text-align: center;
}
.floating-tel-main::before {
	content: '';
	display: inline-block;
	width: 25px;
	height: 25px;
	background: url('/lp/internet/torrent/2604/img/icon-tel-black.svg') no-repeat center center / contain;
}
.floating-tel-sub {
	color: #333;
}
.floating-web-sub {
	font-size: 12px;
	margin-top: 2px;
	color: #fff;
	font-weight: normal;
}
.floating-btn.floating-web .floating-web-sub {
	color: #e6ecfa;
}
@media (min-width: 769px) {
	.floating-web {
		max-width: 300px;
	}
}

@media (max-width: 767px) {
	.floating-cta {
		background: rgba(0,0,0,0.8);
	}
	.floating-cta-inner {
		gap: 8px;
		padding: 6px;
	}
	.floating-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		box-sizing: border-box;
		min-height: 65px;
		font-size: 15px;
		padding: 9px 2px 7px 2px;
	}
	.floating-tel-main, .floating-web-main {
		font-size: 15px;
		align-items: center;
	}
	.floating-tel-sub, .floating-web-sub {
		font-size: 11px;
	}
	.floating-web {
		width: 40%;
	}
}

/* ===================================================
    footer
=================================================== */
footer {
	font-size: 12px;
    background: #000;
    color: #fff;
	text-align: center;
	padding: 30px 0 50px;
}
.footer_menu{
    display: flex;
    gap: 10px;
    justify-content: center;
    list-style: none;
    margin-bottom: 5px;
}
.footer_menu a{
    color: #fff;
}
.copyright{
    text-align: center;
}
