:root {
    --bg-primary: #FFFFFF;
    --bg-secondary: #F8FAFC;
    --bg-tinted-band: #F1F5F9;
    --bg-card: #FFFFFF;
    --text-primary: #0F172A;
    --text-secondary: #475569;
    --text-muted: #64748B;
    --brand-navy: #0F2942;
    --brand-deep-blue: #1E3A8A;
    --brand-accent-bright: #0284C7;
    --brand-accent-electric: #2563EB;
    --border-hairline: #E2E8F0;
    --border-subtle: #CBD5E1;
}

* {
    box-sizing: border-box;
}

body {
    font-family: 'LINE Seed JP', sans-serif;
    background-color: var(--bg-primary);
    color: var(--text-primary);
    line-height: 1.6;
    margin: 0;
    padding: 0;
}

.text-muted {
    color: #64748B !important;
}

.theme-headline-gradient {
    background: linear-gradient(135deg, #0F2942 0%, #0284C7 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.theme-accent-gradient {
    background: linear-gradient(90deg, #1E3A8A 0%, #0284C7 100%);
}

.theme-hero-subtle-gradient {
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FAFC 100%);
}

.theme-icon-soft-gradient {
    background: linear-gradient(135deg, #E0F2FE 0%, #BAE6FD 100%);
}

.border-hairline {
    border-color: var(--border-hairline);
}

.border-subtle {
    border-color: var(--border-subtle);
}

/* ===== header ===== */
.site-header-zurnavex {
    font-family: 'LINE Seed JP', sans-serif;
}

.site-header-zurnavex a,
.site-header-zurnavex button {
    touch-action: manipulation;
}

/* ===== hero ===== */
.hero-section {
    font-family: 'LINE Seed JP', sans-serif;
}

.hero-section .hero-main-card img,
.hero-section .hero-secondary-card img {
    object-fit: cover;
}

.hero-section a {
    overflow-wrap: anywhere;
}

@media (max-width: 767px) {
    .hero-section .hero-main-card {
        min-height: 340px;
    }

    .hero-section .hero-secondary-card {
        min-height: 220px;
    }
}

/* ===== most-read ===== */
.most-read-section {
    font-family: 'LINE Seed JP', sans-serif;
}

.most-read-section .most-read-card {
    box-sizing: border-box;
}

.most-read-section h2,
.most-read-section h3 {
    overflow-wrap: anywhere;
}

/* ===== timeline ===== */
.timeline-section .timeline-line {
    position: absolute;
    left: calc(25% + 4.166667% - 1px);
    top: 12px;
    bottom: 12px;
    width: 2px;
    background-color: #CBD5E1;
}

.timeline-section .timeline-filter-btn {
    border: 1px solid #CBD5E1;
    color: #475569;
    background-color: #FFFFFF;
}

.timeline-section .timeline-filter-btn:hover {
    border-color: #0284C7;
    color: #0F2942;
    background-color: #F0F9FF;
}

.timeline-section .timeline-filter-btn.active {
    border-color: #0F2942;
    background-color: #0F2942;
    color: #FFFFFF;
}

.timeline-section .timeline-item.hidden-item {
    display: none;
}

/* ===== news-grid ===== */
.news-grid-section {
    font-family: 'LINE Seed JP', sans-serif;
}

.news-grid-section-card {
    min-height: 100%;
}

@media (max-width: 767px) {

    .news-grid-section h2,
    .news-grid-section h3,
    .news-grid-section p {
        hyphens: auto;
        overflow-wrap: anywhere;
    }
}

/* ===== editorial-team ===== */
.editorial-team-section .js-filter-btn.active {
    background-color: #0F2942;
    color: #FFFFFF;
    border-color: #0F2942;
}

.editorial-team-section .js-author-card.is-hidden {
    display: none;
}

/* ===== editorial-standards ===== */
.editorial-standards-block {
    font-family: 'LINE Seed JP', sans-serif;
}

.editorial-standards-block button:focus-visible {
    outline: 2px solid #0284C7;
    outline-offset: 2px;
}

/* ===== footer ===== */
.zurnavex-footer-input::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.zurnavex-footer-input:focus {
    box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.2);
}

.zurnavex-footer-btn {
    min-height: 46px;
}

.site-header-zurnavex {
    font-family: 'LINE Seed JP', sans-serif;
}

.site-header-zurnavex a,
.site-header-zurnavex button {
    touch-action: manipulation;
}

.category-template-container {
    font-family: 'LINE Seed JP', sans-serif;
}

.category-template-container h1,
.category-template-container h2,
.category-template-container h3 {
    hyphens: auto;
    overflow-wrap: anywhere;
}

.zurnavex-footer-input::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.zurnavex-footer-input:focus {
    box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.2);
}

.zurnavex-footer-btn {
    min-height: 46px;
}


/* ===== PAGE: privacy ===== */
.policy-content { max-width: 860px; margin: 0 auto; padding: 2.5rem 1.25rem; font-family: 'LINE Seed JP', sans-serif; color: #334155; line-height: 1.7; overflow-wrap: anywhere; word-break: normal; } .policy-content .policy-effective-date { font-size: 0.875rem; color: #64748b; margin-bottom: 2rem; border-bottom: 1px solid #e2e8f0; padding-bottom: 0.75rem; } .policy-content .policy-section { margin-bottom: 2.25rem; } .policy-content h2 { font-size: 1.5rem; font-weight: 800; color: #0f172a; line-height: 1.3; margin-top: 2rem; margin-bottom: 1rem; letter-spacing: -0.015em; border-left: 4px solid #0284c7; padding-left: 0.75rem; } .policy-content h3 { font-size: 1.125rem; font-weight: 700; color: #0f2942; line-height: 1.35; margin-top: 1.5rem; margin-bottom: 0.625rem; letter-spacing: -0.01em; } .policy-content p { font-size: 0.9375rem; color: #334155; line-height: 1.7; margin-bottom: 1rem; } .policy-content ul { list-style-type: disc; padding-left: 1.5rem; margin-bottom: 1.25rem; } .policy-content li { font-size: 0.9375rem; color: #334155; line-height: 1.65; margin-bottom: 0.5rem; } .policy-content strong { color: #0f172a; font-weight: 700; } @media (max-width: 767px) { .policy-content { padding: 1.5rem 1rem; } .policy-content h2 { font-size: 16px; margin-top: 1.5rem; margin-bottom: 0.75rem; padding-left: 0.5rem; border-left-width: 3px; hyphens: auto; } .policy-content h3 { font-size: 14px; margin-top: 1.25rem; margin-bottom: 0.5rem; hyphens: auto; } .policy-content p, .policy-content li { font-size: 0.875rem; line-height: 1.6; } .policy-content ul { padding-left: 1.25rem; margin-bottom: 1rem; } .policy-content .policy-effective-date { font-size: 0.75rem; margin-bottom: 1.5rem; } }

/* ===== PAGE: terms ===== */
.policy-content{width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;font-family:'LINE Seed JP',sans-serif;color:#334155;background-color:#ffffff;padding:1.5rem 1rem}.policy-content .policy-intro{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e2e8f0}.policy-content .policy-lead{font-size:0.9375rem;line-height:1.75;color:#475569;margin:0}.policy-content .policy-section{margin-bottom:2rem}.policy-content .policy-title{font-size:1rem;line-height:1.3;font-weight:800;color:#0f2942;margin:0 0 0.875rem 0;padding-left:0.75rem;border-left:4px solid #0284c7}.policy-content .policy-text{font-size:0.875rem;line-height:1.7;color:#334155;margin:0 0 0.75rem 0}.policy-content .policy-text:last-child{margin-bottom:0}.policy-content .policy-list{list-style:none;padding:0;margin:0.75rem 0 0 0}.policy-content .policy-list-item{display:flex;align-items:flex-start;gap:0.625rem;font-size:0.875rem;line-height:1.65;color:#334155;margin-bottom:0.625rem}.policy-content .policy-list-item:last-child{margin-bottom:0}.policy-content .policy-list-bullet{display:inline-block;width:6px;height:6px;min-width:6px;margin-top:0.5rem;border-radius:50%;background-color:#0284c7}.policy-content .policy-meta-box{margin-top:2.5rem;padding:1.25rem;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:0.5rem}.policy-content .policy-date-label{font-size:0.8125rem;line-height:1.6;color:#64748b;margin:0}.policy-content .policy-date-label + .policy-date-label{margin-top:0.25rem}@media(min-width:768px){.policy-content{padding:2.5rem 2rem}.policy-content .policy-lead{font-size:1rem;line-height:1.8}.policy-content .policy-title{font-size:1.25rem;margin-bottom:1rem;padding-left:1rem}.policy-content .policy-text{font-size:0.9375rem;line-height:1.75;margin-bottom:0.875rem}.policy-content .policy-list-item{font-size:0.9375rem;margin-bottom:0.75rem}.policy-content .policy-meta-box{padding:1.5rem;margin-top:3rem}}

/* ===== PAGE: disclaimer ===== */
.policy-content { width: 100%; max-width: 100%; color: #334155; font-family: 'LINE Seed JP', sans-serif; font-size: 1rem; line-height: 1.7; overflow-wrap: anywhere; word-break: break-word; } .policy-content .policy-intro-lead { font-size: 1rem; line-height: 1.75; color: #475569; margin-bottom: 2rem; padding: 1.25rem 1.5rem; background-color: #f8fafc; border-left: 4px solid #0284c7; border-radius: 0.375rem; } .policy-content h2 { color: #0f172a; font-weight: 800; font-size: 16px; line-height: 1.3; margin-top: 2.25rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #e2e8f0; } .policy-content h3 { color: #0f172a; font-weight: 700; font-size: 14px; line-height: 1.35; margin-top: 1.5rem; margin-bottom: 0.75rem; } .policy-content p { color: #334155; margin-bottom: 1.25rem; font-size: 0.9375rem; line-height: 1.7; } .policy-content ul, .policy-content ol { margin-top: 0.5rem; margin-bottom: 1.5rem; padding-left: 1.5rem; list-style-type: disc; color: #334155; } .policy-content ol { list-style-type: decimal; } .policy-content li { margin-bottom: 0.5rem; line-height: 1.65; font-size: 0.9375rem; } .policy-content strong { color: #0f172a; font-weight: 700; } .policy-content a { color: #0284c7; text-decoration: underline; text-underline-offset: 3px; } .policy-content a:hover { color: #0f2942; } @media (min-width: 768px) { .policy-content { font-size: 1rem; } .policy-content h2 { font-size: 24px; margin-top: 3rem; margin-bottom: 1.25rem; } .policy-content h3 { font-size: 18px; margin-top: 2rem; margin-bottom: 1rem; } .policy-content p, .policy-content li { font-size: 1rem; } }

/* ===== PAGE: cookies ===== */
.policy-content { max-width: 100%; word-break: break-word; overflow-wrap: anywhere; } .policy-content .policy-section h2 { color: #0f172a; } .policy-content .policy-section h3 { color: #0f172a; } .policy-content .policy-section p { color: #334155; } .policy-content .policy-section ul { color: #334155; }

/* ===== PAGE: about ===== */
.zurnavex-about h2, .zurnavex-about h3, .zurnavex-about p { overflow-wrap: anywhere; hyphens: auto; }

.comment-avatar {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 9999px;
    object-fit: cover;
    display: block;
    border: 1px solid #E2E8F0;
}

.comment-item {
    background-color: #FFFFFF;
    border-color: #E2E8F0;
}

.comment-body {
    color: #0F172A;
    line-height: 1.7;
    word-break: break-word;
}

.comment-action-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
}

.comment-action-btn:hover {
    background-color: #F1F5F9;
}

.reply-avatar {
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 9999px;
    object-fit: cover;
    display: block;
    border: 1px solid #CBD5E1;
}

.reply-item {
    background-color: #F8FAFC;
    border-color: #E2E8F0;
}

.reply-body {
    color: #1E293B;
    line-height: 1.6;
    word-break: break-word;
}

.reply-action-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 3px 5px;
    border-radius: 4px;
}

.reply-action-btn:hover {
    background-color: #E2E8F0;
}


/* ===== PAGE TEMPLATE: tech-news ===== */
.site-header-zurnavex {
    font-family: 'LINE Seed JP', sans-serif;
}

.site-header-zurnavex a,
.site-header-zurnavex button {
    touch-action: manipulation;
}

.zurnavex-footer-input::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.zurnavex-footer-input:focus {
    box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.2);
}

.zurnavex-footer-btn {
    min-height: 46px;
}

.detail-page-template input::placeholder,
.detail-page-template textarea::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.detail-page-template .detail-rich-text p {
    overflow-wrap: anywhere;
}

.detail-page-template .like-btn.is-active svg {
    fill: #0284C7;
}

.detail-page-template .like-btn.is-active span {
    color: #0284C7;
}

@media (max-width: 767px) {

    .detail-page-template h1,
    .detail-page-template h2,
    .detail-page-template h3 {
        hyphens: auto;
    }
}

/* ===== PAGE TEMPLATE: gadget-reviews ===== */
.site-header-zurnavex {
    font-family: 'LINE Seed JP', sans-serif;
}

.site-header-zurnavex a,
.site-header-zurnavex button {
    touch-action: manipulation;
}

.zurnavex-footer-input::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.zurnavex-footer-input:focus {
    box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.2);
}

.zurnavex-footer-btn {
    min-height: 46px;
}

.detail-page-template input::placeholder,
.detail-page-template textarea::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.detail-page-template .detail-rich-text p {
    overflow-wrap: anywhere;
}

.detail-page-template .like-btn.is-active svg {
    fill: #0284C7;
}

.detail-page-template .like-btn.is-active span {
    color: #0284C7;
}

@media (max-width: 767px) {

    .detail-page-template h1,
    .detail-page-template h2,
    .detail-page-template h3 {
        hyphens: auto;
    }
}

/* ===== PAGE TEMPLATE: smart-home ===== */
.site-header-zurnavex {
    font-family: 'LINE Seed JP', sans-serif;
}

.site-header-zurnavex a,
.site-header-zurnavex button {
    touch-action: manipulation;
}

.zurnavex-footer-input::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.zurnavex-footer-input:focus {
    box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.2);
}

.zurnavex-footer-btn {
    min-height: 46px;
}

.detail-page-template input::placeholder,
.detail-page-template textarea::placeholder {
    color: #94A3B8;
    opacity: 1;
}

.detail-page-template .detail-rich-text p {
    overflow-wrap: anywhere;
}

.detail-page-template .like-btn.is-active svg {
    fill: #0284C7;
}

.detail-page-template .like-btn.is-active span {
    color: #0284C7;
}

@media (max-width: 767px) {

    .detail-page-template h1,
    .detail-page-template h2,
    .detail-page-template h3 {
        hyphens: auto;
    }
}

/* mobile-text-guard */
@media (max-width: 767px) {
  h1, h2, h3, h4, h5, h6, p, li, dt, dd, blockquote, figcaption, td, th, label {
    overflow-wrap: anywhere;
  }
  a, button, .btn {
    overflow-wrap: anywhere;
    white-space: normal;
  }
  img, video, iframe {
    max-width: 100%;
  }
}
