* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--cocoon-bg: #f4f6f9;
--cocoon-main-bg: #ffffff;
--cocoon-header-bg: #ffffff;
--cocoon-nav-bg: #164e63; 
--cocoon-nav-hover: #0e3746;
--cocoon-text: #2d3748;
--cocoon-heading: #1a202c;
--cocoon-muted: #718096;
--cocoon-border: #e2e8f0;
--cocoon-theme: #164e63;
--cocoon-link: #0284c7;
--gold: #f59e0b;
}
body {
font-family: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
background-color: var(--cocoon-bg);
color: var(--cocoon-text);
line-height: 1.9;
font-size: 16px;
-webkit-font-smoothing: antialiased;
}
.article-static-header {
display: none !important;
}
.site-header {
background: var(--cocoon-header-bg);
border-bottom: 1px solid #e5e7eb;
padding: 16px 0;
text-align: center;
}
.site-header-inner {
max-width: 1140px;
margin: 0 auto;
padding: 0 16px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 0.75rem 1rem;
min-width: 0;
}
.site-logo {
font-size: 22px;
font-weight: 800;
color: #1e293b;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 0;
max-width: 100%;
}
.site-header-links {
display: flex;
flex-wrap: wrap;
gap: 16px;
font-size: 14px;
min-width: 0;
}
.site-header-links a {
color: var(--reading-muted, #475569);
text-decoration: none;
font-weight: 500;
}
.site-header-links a:hover {
color: var(--cocoon-theme);
}
.global-nav {
background: var(--cocoon-nav-bg);
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.global-nav-inner {
max-width: 1140px;
margin: 0 auto;
display: flex;
overflow-x: auto;
scrollbar-width: none;
}
.global-nav-inner::-webkit-scrollbar {
display: none;
}
.nav-item {
color: #ffffff;
text-decoration: none;
padding: 12px 20px;
font-size: 14px;
font-weight: 700;
white-space: nowrap;
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
line-height: 1.3;
border-right: 1px solid rgba(255, 255, 255, 0.12);
transition: background-color 0.2s;
}
.nav-item:hover, .nav-item.active {
background: var(--cocoon-nav-hover);
}
.nav-item .nav-sub {
font-size: 11px;
font-weight: 400;
opacity: 0.85;
}
.breadcrumbs-wrapper {
max-width: 1140px;
margin: 14px auto 0;
padding: 0 16px;
font-size: 13px;
color: var(--cocoon-muted);
}
.breadcrumbs-wrapper a {
color: var(--cocoon-muted);
text-decoration: none;
}
.breadcrumbs-wrapper a:hover {
text-decoration: underline;
color: var(--cocoon-link);
}
.breadcrumbs-wrapper span {
margin: 0 6px;
color: #cbd5e1;
}
.layout-container {
max-width: 1140px;
margin: 18px auto 50px;
padding: 0 16px;
display: flex;
gap: 28px;
align-items: flex-start;
}
.main-content-column {
flex: 1;
min-width: 0;
background: var(--cocoon-main-bg);
border: 1px solid var(--cocoon-border);
border-radius: 6px;
padding: 36px 40px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
}
.sidebar-column {
width: 320px;
flex-shrink: 0;
display: flex;
flex-direction: column;
gap: 20px;
}
.sticky-widget {
position: static;
}
.sidebar-widget {
background: var(--cocoon-main-bg);
border: 1px solid var(--cocoon-border);
border-radius: 6px;
overflow: hidden;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.sidebar-widget-title {
background: var(--cocoon-nav-bg);
color: #ffffff;
font-size: 15px;
font-weight: 700;
padding: 11px 16px;
display: flex;
align-items: center;
gap: 6px;
}
.sidebar-widget-body {
padding: 16px;
}
.sidebar-rank-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.sidebar-rank-link {
display: flex;
flex-direction: column;
padding: 8px 10px;
border: 1px solid #e2e8f0;
border-radius: 4px;
text-decoration: none !important;
background: #f8fafc;
transition: background-color 0.15s, border-color 0.15s;
}
.sidebar-rank-link:hover {
background: #f1f5f9;
border-color: #cbd5e1;
}
.sidebar-rank-name {
font-size: 12.5px;
font-weight: 700;
color: #1e293b;
}
.sidebar-rank-pt {
font-size: 11px;
color: #64748b;
}
.sidebar-event-item {
display: flex;
gap: 10px;
align-items: flex-start;
padding: 8px 0;
border-bottom: 1px solid #f1f5f9;
font-size: 13px;
}
.sidebar-event-item:last-child {
border-bottom: none;
padding-bottom: 0;
}
.sidebar-event-tag {
background: #e0f2fe;
color: #0369a1;
font-size: 11px;
font-weight: 700;
padding: 2px 6px;
border-radius: 3px;
flex-shrink: 0;
}
.sidebar-tip-box {
background: #fffbeb;
border: 1px solid #fef3c7;
border-radius: 6px;
padding: 12px 14px;
font-size: 13px;
color: #92400e;
line-height: 1.6;
}
.sidebar-toc-list {
list-style: decimal;
padding-left: 20px;
margin: 0;
font-size: 13.5px;
}
.sidebar-toc-list li {
margin-bottom: 9px;
line-height: 1.5;
}
.sidebar-toc-list a {
color: var(--cocoon-link);
text-decoration: none;
transition: color 0.15s;
}
.sidebar-toc-list a:hover {
text-decoration: underline;
color: #0369a1;
}
.sidebar-calc-banner {
background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
border: 1px solid #bfdbfe;
border-radius: 6px;
padding: 18px 16px;
text-align: center;
}
.sidebar-calc-banner h4 {
font-size: 15px;
font-weight: 800;
color: #1e3a8a;
margin-bottom: 6px;
}
.sidebar-calc-banner p {
font-size: 12.5px;
color: var(--reading-muted, #475569);
margin-bottom: 12px;
line-height: 1.5;
}
.sidebar-calc-btn {
display: block;
background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%);
color: #ffffff !important;
text-decoration: none !important;
font-weight: 800;
font-size: 13.5px;
padding: 10px 14px;
border-radius: 6px;
box-shadow: 0 2px 6px rgba(37, 99, 235, 0.25);
transition: transform 0.15s, box-shadow 0.15s;
}
.sidebar-calc-btn:hover {
transform: translateY(-1px);
box-shadow: 0 4px 10px rgba(37, 99, 235, 0.35);
}
.pr-tag {
display: inline-block;
border: 1px solid #cbd5e1;
color: #64748b;
font-size: 11px;
font-weight: 700;
padding: 2px 7px;
border-radius: 3px;
margin-bottom: 12px;
background: #f8fafc;
}
.article-title {
font-size: 25px;
font-weight: 800;
color: var(--cocoon-heading);
line-height: 1.45;
margin-bottom: 14px;
letter-spacing: -0.01em;
}
.article-post-meta {
font-size: 13px;
color: var(--cocoon-muted);
margin-bottom: 24px;
padding-bottom: 12px;
border-bottom: 1px dashed #e2e8f0;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 8px;
}
.article-eyecatch-wrap {
display: none;
}
.marker-yellow {
background: linear-gradient(transparent 60%, #fef08a 60%);
font-weight: 700;
padding: 0 2px;
}
.marker-blue {
background: linear-gradient(transparent 60%, #bae6fd 60%);
font-weight: 700;
padding: 0 2px;
}
.marker-red {
background: linear-gradient(transparent 60%, #fecdd3 60%);
font-weight: 700;
padding: 0 2px;
}
.main-content-column h2, .section h2 {
background: linear-gradient(135deg, #164e63 0%, #0e3746 100%);
color: #ffffff;
font-size: 19px;
font-weight: 700;
padding: 12px 20px;
margin: 40px 0 20px;
border-radius: 4px;
line-height: 1.45;
box-shadow: 0 2px 5px rgba(22, 78, 99, 0.15);
display: flex;
align-items: center;
gap: 8px;
}
.main-content-column h3, .section h3 {
font-size: 17px;
font-weight: 700;
color: var(--cocoon-heading);
border-left: 5px solid var(--cocoon-nav-bg);
border-bottom: 1px solid var(--cocoon-border);
padding: 8px 14px;
margin: 30px 0 16px;
line-height: 1.45;
background: #f8fafc;
}
.cocoon-box-info {
position: relative;
background: #f0f7fa;
border: 1px solid #c2e1ed;
border-radius: 6px;
padding: 18px 22px 18px 68px;
margin: 24px 0;
font-size: 15px;
}
.cocoon-box-info::before {
content: "ℹ️";
position: absolute;
top: 18px;
left: 20px;
font-size: 30px;
line-height: 1;
}
.cocoon-box-title {
font-weight: 800;
color: #0e5b78;
margin-bottom: 8px;
font-size: 16px;
}
.cocoon-box-alert {
position: relative;
background: #fdfaf3;
border: 1px solid #f2dec2;
border-radius: 6px;
padding: 18px 22px 18px 68px;
margin: 24px 0;
font-size: 15px;
}
.cocoon-box-alert::before {
content: "⚠️";
position: absolute;
top: 18px;
left: 20px;
font-size: 28px;
line-height: 1;
}
.cocoon-box-alert .cocoon-box-title {
color: #a05e03;
}
.cocoon-box-point {
position: relative;
background: #f4faf4;
border: 1px solid #cce8cc;
border-radius: 6px;
padding: 18px 22px 18px 68px;
margin: 24px 0;
font-size: 15px;
}
.cocoon-box-point::before {
content: "💡";
position: absolute;
top: 18px;
left: 20px;
font-size: 28px;
line-height: 1;
}
.cocoon-box-point .cocoon-box-title {
color: #1b661b;
}
.cocoon-box-info ul, .cocoon-box-alert ul, .cocoon-box-point ul {
padding-left: 18px;
margin: 0;
}
.cocoon-box-info li, .cocoon-box-alert li, .cocoon-box-point li {
margin-bottom: 6px;
line-height: 1.7;
}
.speech-bubble-wrapper {
display: flex;
gap: 16px;
align-items: flex-start;
margin: 28px 0;
}
.speech-avatar {
width: 60px;
text-align: center;
flex-shrink: 0;
}
.speech-avatar-icon {
width: 52px;
height: 52px;
border-radius: 50%;
background: #e0f2fe;
border: 2px solid #38bdf8;
display: flex;
align-items: center;
justify-content: center;
font-size: 26px;
margin: 0 auto 4px;
}
.speech-avatar-name {
font-size: 11px;
font-weight: 700;
color: var(--reading-muted, #475569);
}
.speech-bubble-body {
position: relative;
background: var(--reading-surface, #ffffff);
border: 2px solid #e2e8f0;
border-radius: 10px;
padding: 16px 20px;
flex: 1;
font-size: 15px;
line-height: 1.75;
}
.speech-bubble-body::before {
content: "";
position: absolute;
top: 18px;
left: -9px;
width: 0;
height: 0;
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
border-right: 8px solid #e2e8f0;
}
.speech-bubble-body::after {
content: "";
position: absolute;
top: 18px;
left: -6px;
width: 0;
height: 0;
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
border-right: 8px solid #ffffff;
}
.feature-badge-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 16px;
margin: 24px 0;
}
.feature-badge-card {
background: var(--reading-surface, #ffffff);
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 16px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
}
.feature-badge-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
}
.feature-badge-title {
font-weight: 800;
font-size: 15px;
color: var(--cocoon-heading);
}
.feature-badge-stars {
color: var(--reading-warning, #854d0e);
font-weight: 700;
font-size: 14px;
}
.feature-badge-card p {
font-size: 13.5px;
color: var(--reading-muted, #475569);
margin: 0;
line-height: 1.6;
}
.rakuten-btn-container {
margin: 32px 0;
padding: 24px 20px;
background: linear-gradient(135deg, #fff5f5 0%, #fef2f2 100%);
border: 2px dashed #fca5a5;
border-radius: 8px;
text-align: center;
}
.rakuten-btn-lead {
font-size: 15px;
font-weight: 800;
color: #b91c1c;
margin-bottom: 14px;
}
.rakuten-action-button {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
background: linear-gradient(180deg, #e11d48 0%, #be123c 100%);
color: #ffffff !important;
font-size: 17px;
font-weight: 800;
padding: 16px 36px;
border-radius: 6px;
text-decoration: none !important;
box-shadow: 0 4px 14px rgba(190, 18, 60, 0.35);
overflow: hidden;
transition: transform 0.15s, box-shadow 0.15s;
}
.rakuten-action-button::after {
content: "";
position: absolute;
top: -50%;
left: -60%;
width: 30%;
height: 200%;
background: rgba(255, 255, 255, 0.3);
transform: rotate(25deg);
animation: button-shimmer 3.5s infinite ease-in-out;
}
@keyframes button-shimmer {
0% { left: -60%; }
20% { left: 140%; }
100% { left: 140%; }
}
.rakuten-action-button:hover {
transform: translateY(-2px);
box-shadow: 0 6px 18px rgba(190, 18, 60, 0.45);
background: linear-gradient(180deg, #f43f5e 0%, #e11d48 100%);
}
.quick-compare-table {
width: 100%;
border-collapse: collapse;
margin: 24px 0;
font-size: 14.5px;
background: var(--reading-surface, #ffffff);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.quick-compare-table th, .quick-compare-table td {
padding: 12px 16px;
border: 1px solid #e2e8f0;
text-align: left;
}
.quick-compare-table th {
background: #f1f5f9;
font-weight: 700;
color: #1e293b;
}
.quick-compare-table .highlight-row {
background: #fff8f8;
font-weight: 700;
color: #be123c;
}
.inpage-toc {
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 6px;
padding: 18px 24px;
margin: 28px 0;
}
.inpage-toc-title {
font-weight: 800;
font-size: 15px;
color: #1e293b;
margin-bottom: 12px;
border-bottom: 2px solid #e2e8f0;
padding-bottom: 8px;
}
.inpage-toc ol {
padding-left: 20px;
margin: 0;
}
.inpage-toc li {
margin-bottom: 8px;
font-size: 14.5px;
}
.inpage-toc a {
color: var(--cocoon-link);
text-decoration: none;
}
.inpage-toc a:hover {
text-decoration: underline;
}
.faq-item-card {
background: var(--reading-surface, #ffffff);
border: 1px solid #e2e8f0;
border-left: 4px solid var(--cocoon-nav-bg);
border-radius: 6px;
padding: 16px 20px;
margin-bottom: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}
.faq-q {
font-weight: 800;
color: #0f172a;
font-size: 16px;
margin-bottom: 6px;
}
.faq-a {
font-size: 14.5px;
color: #334155;
line-height: 1.7;
}
.author-profile-box {
margin-top: 48px;
padding: 24px;
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 6px;
display: flex;
gap: 20px;
align-items: center;
}
.author-avatar {
width: 68px;
height: 68px;
border-radius: 50%;
background: #e2e8f0;
display: flex;
align-items: center;
justify-content: center;
font-size: 32px;
flex-shrink: 0;
}
.author-info h4 {
font-size: 16px;
margin-bottom: 6px;
color: #0f172a;
}
.author-info p {
font-size: 13.5px;
color: var(--reading-muted, #475569);
line-height: 1.65;
margin: 0;
}
.author-info a {
color: var(--cocoon-link);
}
.site-footer {
background: #1e293b;
color: #94a3b8;
padding: 36px 16px;
text-align: center;
font-size: 13px;
margin-top: 60px;
}
.site-footer a {
color: #cbd5e1;
text-decoration: none;
margin: 0 10px;
}
.site-footer a:hover {
text-decoration: underline;
}
@media (max-width: 768px) {
.site-header-inner {
flex-direction: column;
align-items: center;
text-align: center;
}
.site-logo {
display: block;
max-width: 100%;
text-align: center;
white-space: normal;
overflow-wrap: anywhere;
word-break: break-word;
line-height: 1.35;
font-size: 1.05rem;
}
.site-header-links {
justify-content: center;
width: 100%;
}
}
@media (max-width: 860px) {
.layout-container {
flex-direction: column;
padding: 0 10px;
margin: 12px auto 30px;
}
.main-content-column {
width: 100%;
padding: 24px 16px;
border-radius: 0;
border-left: none;
border-right: none;
}
.sidebar-column {
width: 100%;
}
.article-title {
font-size: 21px;
}
.main-content-column h2, .section h2 {
font-size: 17.5px;
padding: 10px 14px;
margin: 30px 0 16px;
}
.cocoon-box-info, .cocoon-box-alert, .cocoon-box-point {
padding: 14px 16px 14px 52px;
}
.cocoon-box-info::before, .cocoon-box-alert::before, .cocoon-box-point::before {
left: 14px;
font-size: 24px;
}
.rakuten-action-button {
width: 100%;
padding: 14px 16px;
font-size: 15.5px;
}
}
.article-numbered-list, .article-bullet-list {
padding-left: 22px;
margin-bottom: 16px;
}
.article-small-note {
font-size: 13.5px;
color: var(--cocoon-muted);
}
.sidebar-category-list, .sidebar-article-list {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-category-list {
font-size: 14px;
}
.sidebar-category-list li {
padding: 6px 0;
border-bottom: 1px solid #f1f5f9;
}
.sidebar-category-list li:last-child {
border-bottom: none;
}
.sidebar-category-list a, .sidebar-article-list a {
color: #0284c7;
text-decoration: none;
}
.sidebar-category-list a:hover, .sidebar-article-list a:hover {
text-decoration: underline;
}
.sidebar-article-list {
font-size: 13.5px;
}
.sidebar-article-list li {
margin-bottom: 10px;
}
.sidebar-article-list li:last-child {
margin-bottom: 0;
}
.site-footer-links {
margin-bottom: 12px;
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}