/*
 * ANOINE — reference design (complete reset)
 * Matches the supplied wireframe exactly: centered site title, thin gray dividers,
 * a red-bordered 速報情報 box, plain underlined link lists, and a two-column
 * (content + ranking) layout on desktop that stacks to one column on mobile.
 * This is the ONLY stylesheet loaded on public pages — nothing else can override it.
 */

*, *::before, *::after { box-sizing: border-box !important; }

html { background: #fff !important; }

body {
    margin: 0 !important;
    background: #fff !important;
    color: #111 !important;
    font-family: Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.85 !important;
}

/* Strip every decorative effect the old theme layers used to add, everywhere. */
body * {
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border-radius: 0 !important;
    animation: none !important;
    text-transform: none !important;
}
body *:not(.ao-alert):not(.ao-alert *):not(.anoine-reference-alert):not(hr) { border: 0 !important; }

a { color: #111 !important; text-decoration: underline !important; }
a:hover { color: #e3291f !important; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font-family: inherit !important; }

.ao-wrap,
.anoine-reference-home__container,
.ao-page,
.entry-content,
#kb-main > * {
    width: min(1120px, calc(100% - 40px));
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ---- Header ---- */
.ao-site-title { margin: 0; padding: 34px 20px 22px; text-align: center; }
.ao-site-title h1, .ao-site-title p { margin: 0; }
.ao-site-title a {
    display: inline-block;
    text-decoration: none !important;
    color: #111 !important;
    font-weight: 800 !important;
    font-size: clamp(28px, 6vw, 46px);
    letter-spacing: .06em;
}
hr.ao-header-divider, hr.ao-footer-divider {
    border: 0 !important;
    border-top: 6px solid #dcdcdc !important;
    margin: 0 !important;
}
hr.ao-footer-divider { margin-top: 60px !important; }

/* ---- Generic section headings on every page (archives, singles, static pages) ---- */
h1, h2, h3,
.anoine-reference-section__title,
.anoine-reference-alert__title,
.entry-title, .page-title, .archive-title {
    font-weight: 800 !important;
    color: #111 !important;
}
.anoine-reference-section__title { font-size: 24px !important; margin: 0 0 18px !important; }

/* ---- 速報情報 — red frame with the red label tab fixed to its top-left corner ---- */
.anoine-reference-alert, .ao-alert {
    position: relative;
    border: 4px solid #e3291f !important;
    padding: 0 20px 10px !important;
    margin: 0 0 44px !important;
}
.anoine-reference-alert__title {
    display: block !important;
    width: fit-content !important;
    background: #e3291f !important;
    color: #fff !important;
    font-size: 20px !important;
    line-height: 1.4 !important;
    letter-spacing: .12em !important;
    padding: 8px 22px !important;
    margin: -4px 0 14px -24px !important;
}
.anoine-reference-alert__list li { padding: 7px 0 !important; }

/* ---- Plain underlined link lists (最新記事 / ランキング) ---- */
.anoine-reference-alert__list,
.anoine-reference-link-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.anoine-reference-alert__list li,
.anoine-reference-link-list li {
    padding: 12px 0 !important;
}
.anoine-reference-alert__list a,
.anoine-reference-link-list a {
    font-size: 15px !important;
    text-decoration: underline !important;
}
.anoine-reference-link-list--ranking .anoine-reference-rank-number {
    font-weight: 800 !important;
    margin-right: 10px !important;
}
.anoine-reference-more { margin: 18px 0 0 !important; }
.anoine-reference-section { margin: 0 0 46px !important; }
.anoine-reference-empty { color: #666 !important; }

/* ---- Space between the header divider and the page body ---- */
.anoine-reference-home__container { padding-top: 36px !important; }
.anoine-reference-ranking .anoine-reference-section__title { margin-top: 0 !important; }
.anoine-reference-sidebar .anoine-reference-section { margin: 0 0 40px !important; }
.anoine-reference-sidebar .anoine-reference-link-list a { overflow-wrap: anywhere; }

/* ---- Desktop: content column + ranking sidebar, exactly as in the reference image ---- */
@media (min-width: 821px) {
    .anoine-reference-home__container {
        display: grid !important;
        grid-template-columns: 1fr 320px !important;
        column-gap: 60px !important;
        align-items: start !important;
        padding-top: 64px !important;
    }
    .anoine-reference-home .anoine-reference-alert,
    .anoine-reference-home .anoine-reference-latest,
    .anoine-reference-home .anoine-reference-special { grid-column: 1 !important; }
    .anoine-reference-home .anoine-reference-ranking { grid-column: 2 !important; grid-row: 1 / span 4 !important; }
}
/* Mobile: single column, ranking hidden to match the mobile reference (it shows no sidebar). */
@media (max-width: 820px) {
    .anoine-reference-home .anoine-reference-ranking { display: none !important; }
}

/* ---- Breadcrumb (パンくずリスト): small plain text, same underlined-link style ---- */
.kb-crumb { margin-top: 22px !important; margin-bottom: 0 !important; font-size: 13px; line-height: 1.6; color: #555; }
.kb-crumb ol { display: flex; flex-wrap: wrap; align-items: center; list-style: none; margin: 0; padding: 0; }
.kb-crumb li { display: inline-flex; align-items: center; margin: 0; padding: 0; }
.kb-crumb li + li::before { content: ">"; margin: 0 .7em; color: #999; text-decoration: none; }
.kb-crumb a { color: #111 !important; text-decoration: underline !important; }
.kb-crumb [aria-current="page"] span { color: #555; }
.kb-crumb + .anoine-reference-home__container { padding-top: 28px !important; }

/* ---- List pages (blog / category / news / ekiden news / search): same text-only list as 最新記事 ---- */
.anoine-reference-lead { margin: -8px 0 18px !important; color: #555; font-size: 14px; }
.anoine-reference-list .anoine-reference-section__title { font-size: 24px !important; }
/* ---- Pagination (shared by every list page): centered square buttons, current page in black ---- */
.kb-pagination { margin: 44px 0 0 !important; }
.kb-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.kb-pagination li { margin: 0; padding: 0; }
.kb-pagination .page-numbers {
    display: flex; align-items: center; justify-content: center;
    min-width: 44px; height: 44px; padding: 0 12px;
    background-color: #f0f0f0 !important; color: #111 !important;
    font-size: 15px; font-weight: 700; line-height: 1;
    text-decoration: none !important;
}
.kb-pagination a.page-numbers:hover { background-color: #e3291f !important; color: #fff !important; }
.kb-pagination .page-numbers.current { background-color: #111 !important; color: #fff !important; }
.kb-pagination .page-numbers.dots { background-color: transparent !important; min-width: 24px; padding: 0; }
.kb-pagination .page-numbers.prev, .kb-pagination .page-numbers.next { font-size: 20px; }
@media (max-width: 480px) {
    .kb-pagination ul { gap: 6px; }
    .kb-pagination .page-numbers { min-width: 40px; height: 40px; padding: 0 8px; }
}

/* ---- Blog article page: same layout as the home page; article sits where 最新記事 sits ---- */
.anoine-reference-article__title { font-size: 24px !important; line-height: 1.5 !important; margin: 0 0 22px !important; font-weight: 800 !important; overflow-wrap: anywhere; }
.anoine-reference-article__text { margin: 0 0 22px !important; font-size: 16px !important; line-height: 1.9 !important; overflow-wrap: anywhere; }
.anoine-reference-article__source { margin: 0 !important; font-size: 16px !important; overflow-wrap: anywhere; }
.anoine-reference-article .entry-content { width: auto !important; margin: 0 0 22px !important; overflow-wrap: anywhere; }
.anoine-reference-article .entry-content p { margin: 0 0 1.2em; }
.anoine-reference-article .entry-content img { max-width: 100%; height: auto; }
.anoine-reference-single .anoine-reference-article { grid-column: 1; }
@media (min-width: 821px) {
    .anoine-reference-single .anoine-reference-alert,
    .anoine-reference-single .anoine-reference-article { grid-column: 1 !important; }
    .anoine-reference-single .anoine-reference-ranking { grid-column: 2 !important; grid-row: 1 / span 4 !important; }
}
@media (max-width: 820px) {
    .anoine-reference-single .anoine-reference-ranking { display: none !important; }
}

/* ---- Minimal page heading for static pages that still use the page-head block ---- */
.kb-page-head { margin-top: 30px !important; }
.kb-page-head__title { font-size: 24px !important; margin: 0 0 10px !important; }
.kb-page-head__title small { margin-left: .8em; font-size: 12px; color: #777; letter-spacing: .08em; }
.kb-page-head__lead { margin: 0 0 6px; color: #555; font-size: 14px; }

/* ---- Footer ---- */
.ao-copyright { text-align: center !important; color: #111 !important; font-size: 15px !important; padding: 26px 20px !important; margin: 0 !important; }

/* ---- Remove every leftover piece of the old theme's decorative chrome, site-wide. ---- */
#anoine-after-site-image,
.anoine-bottom-nav,
.anoine-page-top-button { display: none !important; }

/* ---- 特設サイト一覧 (/special/): home layout, special-site links below 最新記事, ranking on the right ---- */
@media (min-width: 821px) {
    .anoine-reference-special-index .anoine-reference-alert,
    .anoine-reference-special-index .anoine-reference-latest,
    .anoine-reference-special-index .anoine-reference-special { grid-column: 1 !important; }
    .anoine-reference-special-index .anoine-reference-ranking { grid-column: 2 !important; grid-row: 1 / span 4 !important; }
}
@media (max-width: 820px) {
    .anoine-reference-special-index .anoine-reference-ranking { display: none !important; }
}
